WordPress 5

Contents

WordPressとは


公式ページ
リファレンス

用語

固定ページ

常に表示させたいページなどに使用する。
投稿と違い、独立したページとして扱われるため、カテゴリやタグの設定はできず、最近の更新情報など時系列を利用したページ一覧に表示させることもできない。

投稿

ブログの通常の投稿用のページとして使用する。
カテゴリやタグの設定ができる。
最近の投稿一覧に最新のものから表示されるが、古いものは表示されない。


権限グループ

WordPressではユーザを作成し、認証させたうえで使用させることができる。その際に、ユーザに権限を設定する。権限は権限グループとして定義されたデフォルトの権限グループから割り当てることで制御できる。

権限グループをデフォルト状態からさらに権限追加して使用したい場合は”User Role Editor”などのプラグインが必要。

 

購読者

投稿はできない権限。コメントの投稿は可能であり、コメントの投稿を認証されたユーザのみに許可したい場合に使用する権限。

 

寄稿者

購読者権限に加えて、新規の投稿の作成や、記事一覧・コメント一覧を見ることができる。

ただし、投稿の作成時にメディアのアップロードは不可で、画像を掲載することができない。

また、作成した投稿はすぐに掲載されずに管理者・編集者の掲載許可が必要である。

 

投稿者

寄稿者権限に加えて、自身が作成した投稿を公開することができる。

加えて、投稿の作成時にメディアのアップロードができる。

 

編集者

投稿者権限に加えて、他のユーザが作成した投稿を編集・削除できる。

また、寄稿者が作成した投稿を確認して公開することができる。コメントの承認、削除も可能。

更に、投稿に設定する、新規のカテゴリやタグを作成することができる。

 

管理者

WordPress自体の管理が可能で、投稿の管理のほか、テーマの設定やユーザの作成などの管理作業を行える。

 

メタボックス

投稿画面などで表示される各種入力フィールドやボタンなどが配置される枠のことである。メタボックスは折りたたみや移動が可能で、カスタマイズにより非表示にしたり、プラグインによりメタボックスを追加したりできる。

デフォルトのメタボックスには「カテゴリー」や「タグ」、「公開」、「カスタムフィールド」などがある。

 

サーバー構築

構築環境

 

 

 

 

 

OS設定

ネットワーク

固定IPアドレス割り当て

次のファイルを編集する

# ifcfg-loはループバックインタフェースであるため、触らない
vi /etc/sysconfig/network-scripts/ifcfg-<インタフェース名>


以下では例として192.168.0.51/24を割り当てた

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.51
NETMASK=255.255.255.0
NETWORK=192.168.0.0
GATEWAY=192.168.0.1


ネットワークを再起動する

systemctl restart network


ip addressコマンドにより、インタフェースが有効になっていることを確認する
これによりホストマシンなどからSSHでログイン可能となる


firewalld

HTTPを開ける
  1. 現在ルールが定義されていることを確認
    firewall-cmd --permanent --info-service=http
  2. 現在ルールが適用されていないことを確認する
    firewall-cmd --list-services --zone=public --permanent | sed -e "s/ /\n/g" | grep http
  3. ルールを適用する
    firewall-cmd --add-service=http --zone=public --permanent
  4. ルールが適用されていることを確認する
    firewall-cmd --list-services --zone=public --permanent | sed -e "s/ /\n/g" | grep http
  5. 設定を再読み込みして反映させる
    firewall-cmd --reload

 

HTTPSも開ける場合
  1. 現在ルールが定義されていることを確認
    firewall-cmd --permanent --info-service=https
  2. 現在ルールが適用されていないことを確認する
    firewall-cmd --list-services --zone=public --permanent | sed -e "s/ /\n/g" | grep https
  3. ルールを適用する
    firewall-cmd --add-service=https --zone=public --permanent
  4. ルールが適用されていることを確認する
    firewall-cmd --list-services --zone=public --permanent | sed -e "s/ /\n/g" | grep https
  5. 設定を再読み込みして反映させる
    firewall-cmd --reload

 

ホスト名

ホスト名としてwordpressを設定する

hostname wordpress.corp
# 再起動しても有効にする
echo wordpress.corp > /etc/hostname

再ログインすることで有効になる。

MariaDBの構築

参考:mariadb

WordPress用の設定

  1. ログインする
    mysql
  2. データベースを作成する
    create database wordpress default charset=utf8;
  3. ユーザを作成する
    grant all on wordpress.* to wordpress@localhost identified by "wordpress";



Apacheの構築

参考:apache

PHPの構築

参考:php

ビルド時のオプション

./configure --prefix=/usr/local/`pwd | sed "s/.*\///"` \
    --with-apxs2=$APACHE_HOME/bin/apxs \
    --enable-mysqlnd \
    | tee configure.log.`date +"%Y%m%d_%H%M%S"`


設定ファイルの変更

sed -e "s/;extension=mysqli/extension=mysqli/" \
  -e "s/;extension=pdo_mysql/extension=pdo_mysql/" \
  -i $PHP_HOME/lib/php.ini

 

設定変更


zlibが有効になっている場合、編集時にエラーメッセージが表示される。
これを避けるために、下記設定がOnになっている場合はOffに変える。

zlib.output_compression = Off

エラーメッセージは下記。

 

WordPressインストール

 

WordPressの設置

 

  1. ダウンロードサイト:http://ja.wordpress.org/からアーカイブのURLを取得する
  2. ダウンロードする
    curl -s -O http://ja.wordpress.org/wordpress-5.0.3-ja.zip
  3. アーカイブファイルを展開する
    unzip wordpress-*-ja.zip
  4. バージョン名を付加する場合は以下を実行する。
    WordPressはWeb管理画面からオンラインアップデートが可能であるので、常に最新版を維持しやすい。
    その為、バージョン名付加は基本的に不要である。
    mv wordpress `ls wordpress-*-ja.zip | sed "s/.zip//"`
  5. アーカイブファイルを削除する
    rm -f wordpress-*-ja.zip
  6. 公開ディレクトリへ配置する
    • 専用のディレクトリに配置する場合(以降はこちらの場合で進める)
      mv wordpress* /usr/local/
    • Apacheディレクトリへ移動する場合
      mv wordpress* $APACHE_HOME/htdocs/
  7. リンクを作成する
  8. リンク作成、環境変数設定などを行う
    1. ディレクトリにバージョン名を付加した場合はインストールディレクトリへのシンボリックリンクを作成する。
      これによって、複数のバージョンを同居させ、リンクを切り替えることで、バージョン変更が可能となる。
      各バージョンの実行ファイルはデフォルトでは各バージョンの設定ファイルを読み込むこととなる。
      rm -f /usr/local/wordpress
      ln -s /usr/local/wordpress* /usr/local/wordpress
    2. 簡単にアクセスできるように環境変数を設定する
      export WORDPRESS_HOME=/usr/local/wordpress
    3. 環境変数を再起動後も有効にする
      echo "" >> /etc/bashrc
      echo "# WORDPRESS ENVIRONMENT VARIABLE" >> /etc/bashrc
      echo "export WORDPRESS_HOME=$WORDPRESS_HOME" >> /etc/bashrc
  9. 所有者を変更する
    chown -R apache:apache /usr/local/wordpress*

 

Apacheの設定


WordPressの公開設定を行う
※PHPのLoadModule設定はPHPのインストール時に自動で設定される。

  1. Apacheの設定ファイルに追記する
    cat >> $APACHE_HOME/conf/httpd.conf << EOT
    
    # PHP Configuration
    <IfModule php7_module>
      <FilesMatch \.php$>
        SetHandler application/x-httpd-php
      </FilesMatch>
      AddType text/html .php
    </IfModule>
    
    # WordPress Configuration
    Alias /wordpress/ "/usr/local/wordpress/"
    <Directory "/usr/local/wordpress/">
      Options Indexes FollowSymLinks
      AllowOverride None
      Require all granted
      DirectoryIndex index.php
    </Directory>
    EOT
  2. 再起動する
    systemctl restart apache

 

WordPressの設定

 

初期設定


設定ファイルが存在しないので、作成する
※サンプル:ファイルをコピーして編集しても良い

$WORDPRESS_HOME/wp-config-sample.php

以下を実行する

GET_RANDOM="LC_CTYPE=C tr -dc A-Za-z0-9 < /dev/urandom | fold -w ${1:-32} | head -n 1"
cat > $WORDPRESS_HOME/wp-config.php << EOT
<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'wordpress');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

define('AUTH_KEY',         '`eval $GET_RANDOM`');
define('SECURE_AUTH_KEY',  '`eval $GET_RANDOM`');
define('LOGGED_IN_KEY',    '`eval $GET_RANDOM`');
define('NONCE_KEY',        '`eval $GET_RANDOM`');
define('AUTH_SALT',        '`eval $GET_RANDOM`');
define('SECURE_AUTH_SALT', '`eval $GET_RANDOM`');
define('LOGGED_IN_SALT',   '`eval $GET_RANDOM`');
define('NONCE_SALT',       '`eval $GET_RANDOM`');
\$table_prefix  = 'wp_';
define('WPLANG', 'ja');
define('WP_DEBUG', false);

if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
EOT
chown apache:apache $WORDPRESS_HOME/wp-config.php

 

セットアップ


Webブラウザで下記にアクセスしてセットアップを進める。

http://<ホスト名>/wordpress/wp-admin/setup-config.php

アクセス後、次の警告がでるが、無視して続行する。

wp-config.php ファイルがすでに存在しています。このファイル内の設定項目をリセットする必要がある場合は、まずこのファイルを削除してください。準備がよければインストールを実行してください。

サイト名や管理者アカウント情報を入力してセットアップは完了である。

基本設定

マルチサイト設定

1つのWordPressで複数のサイトを管理する場合、マルチサイト化する必要がある。

マルチサイト化すると一部の設定が初期化されたり、ページのURLが変わる可能性がるので、なるべく初期の段階で行っておいた方が良い。

マルチサイト化すると、複数のドメイン、もしくは複数のサブディレクトリで別のサイトとすることができる。

なお、現サイトがサブディレクトリである場合は、複数のサブディレクトリにしかできない。

  1. 設定ファイルを変更し、マルチサイト化を有効にする。
    vi $WORDPRESS_HOME/wp-config.php
    下記の行の上に
    if ( !defined('ABSPATH') )
    以下を追加する。
    define('WP_ALLOW_MULTISITE', true);
  2. 管理ページ > ツール > サイトネットワークの設置
  3. いずれかのプラグインが有効である場合、無効化するよう警告が表示されるので一時的にすべて無効化する
  4. 「WordPress サイトネットワークの作成」画面が表示される
    1. 複数のドメインか複数のサブディレクトリかを選択する。現在のサイトがサブディレクトリである場合は、選択肢は表示されず、サブディレクトリ方式となる。
      ここで選択した方式は後から変更できない。変更する場合は再インストールが必要になるので、変更する可能性があるならデータベースとWordPressのインストールディレクトリのバックアップを取得した方が良い。
    2. サーバーアドレス、サイトネットワーク名、管理者のメールアドレスなどが入力可能であるが、入力しなくても良い。
    3. インストール
  5. 「サイトネットワークを有効化中」画面が表示される
    1. マルチサイトを有効にする。
      vi $WORDPRESS_HOME/wp-config.php
      下記の行の上に
      if ( !defined('ABSPATH') )
      ページで指示されているwp-config.phpに追記する内容を記載知る。
      “if ( !defined(‘ABSPATH’) )”より後の部分に記載すると次のような警告が画面上に表示されるので注意。
      Constant MULTISITE already defined in XXX
    2. Apacheのリライトルールを追記する
      ・httpd.confに設定を行う場合
      vi $APACHE_HOME/conf/httpd.conf
      ・.htaccessに設定を行う場合
      vi <WordPressのインストールディレクトリ>/.htaccess
      ページで指示されている.htaccessに追記する内容を記載する。
      既にリライトルールが記載されている場合は置き換える。
    3. Apacheを再起動する
      apachectl graceful
  6. WordPressの管理ページに再ログインする
  7. 管理画面左上に「参加サイト」が表示されていることを確認する
  8. プラグインを無効化した場合は再度有効化する。
    ※有効化の表示は「サイトネットワークで有効化」に変わっている
  9. パーマリンク設定をしていた場合は初期化されているので再設定する
    1. 参加サイト > サイトネットワーク管理 > サイト
    2. 作成したサイトの編集リンクをクリックする
    3. 設定タブを開く
    4. Permalink Structureを元に戻す
      例:/%category%/%postname%
    5. 変更を保存

 

サブディレクトリ方式の場合の追加設定

サブディレクトリで使用している状態でサブディレクトリ方式のマルチサイト化を行うと、新しく追加したサイトで管理ページにログインできなかった。

あるサイトではwp-config.phpの設定を書き換えることでログイン可能になるとあった。

変更前:define(‘PATH_CURRENT_SITE’, ‘/wiki/’);


変更後:define(‘PATH_CURRENT_SITE’, ‘/’)

これによってログイン可能となったが、WordPress全体のサイト設定(参加サイト > サイトネットワーク管理 > XXX)へのアクセスができなくなった。

これは次のようにすることで解決できた。

  1. wp_siteテーブルを確認する
    mysql wordpress -e "select * from wp_site;"

    次のように表示されるはずである。

    +----+------------------+--------+
    | id | domain | path |
    +----+------------------+--------+
    | 1 | eldorado-of.info | /wiki/ |
    +----+------------------+--------+
  2. 次に値を更新する。

    mysql wordpress -e "update wp_site set path='/';"
  3. 結果を確認する。

    mysql wordpress -e "select * from wp_site;"

    次のように表示されるはずである。

    +----+------------------+------+
    | id | domain | path |
    +----+------------------+------+
    | 1 | eldorado-of.info | / |
    +----+------------------+------+

新しいサイトの作成

  1. 管理ページ > サイト
  2. 新規追加
  3. サイトアドレスに新しいサイトのドメイン、サブディレクトリ名を入力する。
    サブディレクトリの場合であっても最後に”/” (スラッシュ)は不要である。
    サブディレクトリの場合、メインサイト配下のパスで一旦作成されるが、後からメインサイトと同じ階層に変更可能である。
  4. サイトのタイトルを入力する。既存のものと同じでも良い。
  5. 管理者メールアドレスを入力する。既存のものと同じでも良い。
  6. サイトを追加
  7. 作成したサイトの設定を変更する。
  8. 必要に応じて新しいサイトのエイリアスやリライトルールを追記する。

 

URL(パーマリンク)の設定

標準では投稿したページは下記のパスで公開される。

/wordpress/index.php/%year%/%monthnum%/%day%/%postname%/

※%%部分は変数

変更する場合は下記手順で行う。

  1. 設定
  2. パーマリンク設定
  3. 共通設定を任意のものに変更する
  4. 変更を保存

“/カテゴリ名/[サブカテゴリ名…/]ページ名”とする場合は下記

/%category%/%postname%

 

.htaccessを使用していない場合

URLにindex.phpが含まれない設定にし、.htaccessを使用していない場合は自身でRewrite設定を行う必要がある。.htaccessを使用している場合は、自動で生成される.htaccessが有効になる。

  1. 設定ファイルを編集する
    vi $APACHE_HOME/conf/httpd.conf
  2. いずれかの箇所に以下を追記する
    LoadModule rewrite_module modules/mod_rewrite.so
  3. 「<Directory “/usr/local/wordpress/”>」ディレクティブ内部に以下を追記する
      <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /wordpress/
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
      </IfModule>
  4. 設定を反映する
    systemctl reload apache

 

 

プラグイン


プラグインは下記から検索可能
https://ja.wordpress.org/plugins/

プラグインのインストール方法

Webから直接インストールする

WordPressサーバーから直接インターネットに接続できる場合、管理画面からダウンロード・インストールを行える

  1. 管理画面にログインする
  2. プラグイン > 新規追加
    ※マルチサイトの場合、参加サイト > サイトネットワーク管理 > プラグイン > 新規追加
  3. プラグインの検索フィールドにインストールしたいプラグイン名を入力して検索する
  4. インストールしたいプラグインが表示されたら、今すぐインストール
  5. プラグインを有効化
    ※マルチサイトの場合、サイトネットワークで有効化

ローカルからアップロードする

WordPressサーバーから直接インターネットに接続できない場合に使用する方法

  1. 管理画面にログインする
  2. プラグイン > 新規追加
    ※マルチサイトの場合、参加サイト > サイトネットワーク管理 > プラグイン > 新規追加
  3. プラグインのアップロード
  4. 対象のzipファイルを選択する
  5. 今すぐインストール
  6. プラグインを有効化
    ※マルチサイトの場合、サイトネットワークで有効化

 

WYSIWYGエディター

WordPressは標準でwysiwygエディターを搭載しているが、機能が少ない。
そのため、プラグインにより別のエディターに切り替える。

TinyMCE Advanced

オープンソースのWYSIWYGエディター「TinyMCE」のWordPress版の一種。
高機能だが使用しない機能は無効化することもできる。

サイト:https://ja.wordpress.org/plugins/tinymce-advanced/
デモサイト:https://www.tiny.cloud/features/

CSSの修正


エディターのボタンにはdashiconsというアイコン用のフォントが使用されているが、文字化けして表示されない問題がある。
これは他のスタイルで指定したフォントの方が優先度が高いためである。

下記の手順で別のスタイルの優先度を下げる。
(!important指定を削除し、セレクタの詳細度を下げている。)

cp $WORDPRESS_HOME/wp-content/themes/twentynineteen/style-editor-customizer.css \
  $WORDPRESS_HOME/wp-content/themes/twentynineteen/style-editor-customizer.css.original
sed "s/ \!important//g" -i $WORDPRESS_HOME/wp-content/themes/twentynineteen/style-editor-customizer.css
sed "s/^html.*lang.*ja.*$/html[lang=\"ja\"] {/" \
  -i $WORDPRESS_HOME/wp-content/themes/twentynineteen/style-editor-customizer.css


なお、恐らく下記のいずれかのファイルでボタンアイコンのスタイルを指定していると思われるが、!important指定を付加するなど変更しても解決しなかった。

$WORDPRESS_HOME/wp-includes/css/editor-rtl.min.css
$WORDPRESS_HOME/wp-includes/css/editor.min.css

 

Ultimate TinyMCE


現在更新されておらず、最新のWordPressには対応していない。

サイト:https://ja.wordpress.org/plugins/ultimate-tinymce/

目次の自動生成(Table of Contents)


h系の要素から自動でそのページの目次を作成するプラグイン

Table of Contents Plus


https://ja.wordpress.org/plugins/table-of-contents-plus/

デフォルトでは固定ページにしか目次作成されないので、投稿にも表示されるように変更しておく
“次の投稿タイプのときに表示”の”post”にチェックを入れる

目次はページに”div#toc_container”要素が挿入されるので、
スタイルを変更する際は上記に対して行うとよい。
ただし、screen.min.cssが読み込まれる場合はこのファイルに定義されたスタイルも適用される。

テーマを自作する場合

テーマを自作する場合は目次が生成されない。
デフォルトのテーマtwentynineteenであれば下記部分の内部で目次が生成されるが、これを呼び出さないためである。

get_template_part( 'template-parts/post/content', get_post_format() );

こちらは目次生成以外の役割も担っていると思われるため、目次生成のみであれば、ページ用のphpファイルに下記を追記すればよい。

<?php echo '<ul id="my_toc">'.toc_get_index().'</ul>'; ?>

これによって装飾はされていないが、目次が生成される。ただし、h1~h6タグにタグ内文字列と同じ内容のid属性が指定されていないと動作しない。
これはh1~h6タグの改変が行われないためである。そのため、自作テーマでTable of Contents Plusを使用する場合は、既存テーマを改修して使用するかh1~h6タグの改変を自分でしなければならない。

 

XML Sitemapの生成

Googleの検索エンジンに登録する際など、Webサイトの構成をXMLで生成して渡すと漏れなく登録できる。

しかし、手作業でXMLを作成、更新するのは手間であるため、プラグインで生成するのが良い。

Google XML Sitemaps

https://ja.wordpress.org/plugins/google-sitemap-generator/

Sitemapを生成後、Googleに自動で登録が可能。

設定によって、Sitemapに登録しないページやカテゴリなどを選択可能。

 

ページのアクセスコントロール

User Access Manager

https://ja.wordpress.org/plugins/user-access-manager/

投稿や固定ページなどに対し、特定のログインユーザーが行える操作を規定できる。

ログインしていないユーザは閲覧負荷ということも可能であるが、デフォルトで閲覧不可とはできなず、また特定のカテゴリ配下のページを閲覧不可ということもできない。

 

設定方法

インストール後、ダッシュボードの左メニューバーに「UAM」という項目が現れるので、そこから設定可能

 

 

ウィジェット


WordPressには各閲覧画面に共通で表示されるウィジェットを配置することができる。
例えば以下がある。


なお、ウィジェットの編集は各ページのカスタマイズリンクからも行えるが、ここで設定しても当該ページのみでなく、サイト全体で反映される点に注意。

ウィジェットの削除

 

  1. 管理画面にログインする
  2. 外観 > ウィジェット
  3. 右部のフッターから不要なウィジェットを開き、削除をクリックする

 

ウィジェットの追加


ウィジェットの表示個所は自動で設定されるので、カスタムHTMLを設定してもPCの場合はページの半分にしか表示されない点に注意。

  1. 管理画面にログインする
  2. 外観 > ウィジェット
  3. 左部の利用できるウィジェットから任意のウィジェットを選択し、ウィジェットを追加ボタンをクリックする

 

テーマ

 

テーマの変更

 

テーマの入手


https://ja.wordpress.org/themes/

テーマの作成


テーマは自分で作成することができる。

 

ファイル構成

 

 

 

 

 

 

 

ライブラリ関数

WordPressにはテーマ作成時に使用できる関数が用意されている。

 

サンプル

style.css

 

single.php

 

footer.php

search.php

検索結果を表示するためのHTMLを記述する。

searchform.php

検索フォームのHTMLを記述する。

get_search_form関数が呼ばれた場合にコードが挿入される。

ただし、searchform.phpを作成していない場合でもデフォルトの検索フォームが表示される。

検索の際は /<WordPressのトップページ>/?s=<検索ワード> へアクセスされなければならない。検索ワードが複数ある際は”+”で連結する。

comments.php

コメントフォームのHTMLを記述する。

comment_form関数が呼ばれた場合にコードが挿入される。

ただし、comments.phpを作成していない場合でもデフォルトの検索フォームが表示される。

author.php

個人で使用している場合、投稿者はadminユーザのみになる。

この場合には、投稿者ページを提供する意義はなく、特定カテゴリの非表示化をした場合などに不便である。

その為、以下のようにトップページにリダイレクトしておくとよい。

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
<body>
<script>
location.href="/wiki/";
</script>
</body>
</html>

functions.php

未分類カテゴリーの非表示

未分類カテゴリーは個人メモ用としてApacheで未分類カテゴリー配下のURLは認証を求めるようにしたとする。

しかしこの場合、検索(?s=<検索ワード>)のURLで検索すると投稿が表示されてしまう。

下書き状態であれば表示されないが、誤って公開してしまっても表示されないように検索結果から未分類カテゴリーを除くようにする。

function SearchFilter($query)
{
if (!is_user_logged_in() && $query->is_main_query() && $query->is_search()) {
$query->set('category__not_in', array(1));
}
return $query;
}
add_action('pre_get_posts','SearchFilter');

 

ショートコードの作成

ページ中に現れる特定のショートコードを任意の文字列に変換することができる。
ショートコードが現れた際に呼び出されるコールバック関数をfunctions.php定義しておく。

 

コールバック関数の定義

コールバック関数は任意の関数名で定義する。
戻り値は文字列。
引数の有無は任意で、属性を引数としてとることができる。
属性はショートコード中に次のように記述する。

[test_code a="1" b="2"]

これによって、連想配列として引数に属性が渡される。

コールバック関数の登録

コールバック関数は登録しないと呼び出されない。
登録はadd_shortcode関数で行う。

 

Tips

カテゴリー名を使用して階層構造にする

投稿を次のようなURLに設定する

/wordpress/category1/category2/page1
/wordpress/category1/category2/page2
/wordpress/category1/category2

 

パーマリンク設定


パーマリンク設定をカスタム構造にし、次の値を設定する

/%category%/%postname%

※%category%変数はカテゴリーが階層構造になっている場合、サブカテゴリーも含む

投稿作成


投稿の際、各ページで「カテゴリー」設定で任意のカテゴリーを設定する
その際、複数のカテゴリーに含めることが可能で、その場合は各カテゴリー一覧に当該投稿が表示される。
また、カテゴリー階層の全階層に含めることも含めないこともできるが、末端階層のカテゴリーにしか属していない投稿でも上位階層のカテゴリー一覧にも当該投稿が表示されるので、結果的に同じである。

カテゴリー名と同じ名前の投稿を作成することは可能である。

 

特殊なURL

通常は存在しないURLを開くと正常に表示されないか、テーマに存在すれば404ページが表示される。

しかし、特殊なURL(クエリストリング)を指定した場合は特別なページが表示される。


Notice: Trying to get property 'queue' of non-object in /usr/local/wordpress/wp-includes/script-loader.php on line 2876

Warning: Invalid argument supplied for foreach() in /usr/local/wordpress/wp-includes/script-loader.php on line 2876