phpMyAdminでWordPressのデータをバックアップ&リストアする方法
- 99
- 10
WEB
こんにちは。エリカです。
今回はWordPressのカスタムタクソノミー(カスタム分類)をプラグインを使わずに設定したいという方向けに、設定方法を解説していきます。
まず、カスタムタクソノミー(カスタム分類)についてのおさらいですが、WordPressに組み込まれている、カテゴリー(category)、タグ(post_tag)、リンクカテゴリー(link_category)、および投稿フォーマット(post_format)とは別に、任意で追加できる分類のことです。
LIGブログの場合ですと、「WEB」や「完全オフ」といった “チャンネル” がカスタムタクソノミーとなります。
カテゴリーとは別に、チャンネル単位でも記事を分類することができるようにするためです。
また、カスタム投稿タイプを利用する場合には、組み込みのカテゴリーとは別の分類を用意することがよくあります。
また、タクソノミーに登録するものを “ターム” と呼びます。
LIGブログでいえば、チャンネルがカスタムタクソノミーで、そのタクソノミーに登録された「WEB」がタームという具合になります。
カスタムタクソノミーを使えるようにするには、下記の関数を使います。
register_taxonomy( $taxonomy, $object_type, $args );
register_taxonomy関数に渡される引数は三つです。
カスタムタクソノミーの名前になります。英小文字とアンダースコアのみで、32文字以内である必要があるようです。例えば、「channel」などです。
余計な問題を回避するために、下記にあげるWordPressがシステムで利用する文言を避けておくことが望ましいです。
attachment / attachment_id / author / author_name / calendar / cat / category / category__and / categoryin / category__not_in / category_name / comments_per_page / comments_popup / customize_messenger_channel / customized / cpage / day / debug / error / exact / feed / fields / hour / link_category / m / minute / monthnum / more / name / nav_menu / nonce / nopaging / offset / order / orderby / p / page / page_id / paged / pagename / pb / perm / post / postin / post__not_in / post_format / post_mime_type / post_status / post_tag / post_type / posts / posts_per_archive_page / posts_per_page / preview / robots / s / search / second / sentence / showposts / static / subpost / subpost_id / tag / tagand / tag__in / tagnot_in / tag_id / tag_slug__and / tag_slugin / taxonomy / tb / term / theme / type / w / withcomments / withoutcomments / year
関連付けする投稿タイプになります。例えば、投稿と関連付けする場合は「post」を指定します。
カスタムタクソノミーにどのような振る舞いをさせるかの設定になります。(設定は任意)
以下のような項目がありますので、ひとつずつ見ていきます。
カスタムタクソノミーの名称です。下記 labels の name で上書きされます。
各部分における名称を指定します。下記のようなものがあり、管理画面の表記に影響します。
以降のパラメータの初期値になります。public自体の初期値はtrueです。
管理画面のメニューに表示させるかどうかの設定です。設定しなければpublicの値と同様になります。非表示の場合でもURLへ直接アクセスすることが可能だったりします。
ナビゲーションメニューで選択可能にするかどうかの設定です。指定しなければpublicの値と同様になります。
タグクラウドを利用するかどうかの設定です。指定しなければshow_uiの値と同様になります。管理画面でも利用する場合は、hierarchicalがtrueである必要があります。
クイック編集に表示するかどうかの設定です。指定しなければshow_uiの値と同様になります。
メタボックスを表示関数を設定します。nullを指定した場合は、hierarchicalの内容に応じて、組み込みのカテゴリーと同じタイプ、組み込みのタグと同じタイプのものがそれぞれ利用されます。
一覧にカラムを表示されるかどうか設定です。初期値はfalseです。
タクソノミーの説明になります。
階層構造にするかどうかの設定です。初期値はfalseです。組み込みのタグのようにしたいのであれば、falseに。カテゴリーのようにしたいのであればtrueにします。
関連付けされている記事の数を計算するタイミングを変更する場合に設定します。基本は関連付けされる記事の更新時ですが、任意のアクションを設定できます。
wp_queryに認識させるかどうかの設定です。trueの場合、URLを解析した場合にquery_varsに$taxonomyを添え字にして格納されます。
例えば、channelというカスタムタクソノミーがあり、その中のwebというタームにアクセスした場合には、
$wp_query->get('channel');
というような問合せができます。
また任意の文字列を指定すれば、下記のような問合せができるようになります。
$wp_query->get(任意の文字);
URLの構造を設定します。
何も指定しなければ、http://ドメイン名/channel/web といったようなURLでwebタームのアーカイブページへアクセスできます。
'rewrite'=> array( 'slug' => 'my_tax_slug' )
このように設定にすれば、http://ドメイン名/my_tax_slug/web/ というURLになります。
'rewrite' => array( 'slug' => 'my_tax_slug', 'hierarchical' => true )
このように設定にすれば、http://ドメイン名/my_tax_slug/web/jquery というURLになります。
'rewrite' => array( 'slug' => 'my_tax_slug', 'hierarchical' => false )
であれば、http://ドメイン名/my_tax_slug/jquery というURLになります。
操作可能な権限を別途設定できます。
タクソノミーのタームを記事へ関連付ける際に、関連付けの順序まで保存するようになります。
なお、この関数はinitアクションで実行する必要がありますので、実際に利用する場合は、functions.phpなどで下記のように init フックで実行するようにします。
add_action( 'init', function () { register_taxonomy( $taxonomy, $object_type, $args ); } );
同じような項目名が多くて、それぞれどこに作用するかいつも困惑しますので、整理してみました。
お役に立てば幸いです。
それでは。
いいね!して、LIGの最新記事を受け取ろう。