
久々にWebページをいじっていて、つまづきました。
基本的に、Wordpressは世界的にもよく使われているCMSなので、ググれば情報がどんどん出てきます。けど、たまに断片的な情報だけで、罠にはまることがあります笑。そして、はまりました。これは、Webページに限らずですがね。なので、今度のためにも備忘録を作成。
基本的な方針
Yet another related post plugin(YARPP)をCustom Post Type UIに対応させるためにfunctions.phpで’yarpp_support’ => trueを記述する。
ってことなんですが、どうも調べるとこれだけ書けばいいというものではなく、Custom Post Type UIの記述全部書く必要があるみたいです。(Custom Post Type UIのプラグインを使う必要なくね?ってなりますね。)。そこで、ネットをいろいろ調べると情報が、ごちゃごちゃで実際にどういう記述でいいのか。いろんな情報に騙され、5時間ぐらい費やしてしまいした。なので、今後のことも考えて、備忘録です。
正しい流れは、、、
1、Custom Post Type UI のImport/Exportから「Get Code」タブから該当のコードをコピー。(それぞれCustom Post Type UIの設定によってコードは違います)。
2、表示されたコードにカスタム投稿で設定した独自の設定を追加する。
3、コードの中の register_post_type の記述内に ‘yarpp_support’ => true を追記。
4、追加されたコードを functions.phpに貼付ける。
1、Custom Post Type UIが吐き出すコード
注意点としては、実際にYARPPを対応させたいカスタム投稿タイプのみを抽出することです。(カスタム投稿タイプを2つ以上設定している場合)ちなみに、投稿タイプ名はblog、投稿タイプのラベルはLivalest’s Logです。僕の場合、下記コードが抽出されました。
*コード最上下のphpのタグは関係ありません。表示上の問題なので悪しからず。
2、カスタム投稿独自の設定のコードを追加する
ここが罠にはまったところです。上記のコードでは、YARPPと連携させるにはところどころ未完なんです。そこで、functions.phpに書くために、コードを追加する必要があります。ここでかなりつまずきました。blogの表記はカスタム投稿タイプのスラッグ名、Livalest’s Logの表記はカスタム投稿タイプのラベルです。”supports” => array( )、”taxonomies” => array( )はあなたのカスタム投稿の設定によって変わります。実際に、書いたコードがこちらです。
上のコードだとどこを変えたのかわかりにくいので、直書きしますね。主に赤い部分を追加したり、注意しなければならないところです。
add_action( ‘init’, ‘cptui_register_my_cpt_blog‘ );
function cptui_register_my_cpt_blog() {
register_post_type(‘blog’, array(
“labels” => ‘Livalest’s Log‘,
“description” => “”,
“public” => true,
“show_ui” => true,
“has_archive” => true,
“show_in_menu” => true,
“exclude_from_search” => false,
“capability_type” => “post”,
“map_meta_cap” => true,
“hierarchical” => false,
“rewrite” => array( “slug” => “blog”, “with_front” => true ),
“query_var” => true,
“menu_position” => 5,
“supports” => array( “title”, “editor”, “excerpt”, “custom-fields”, “comments”, “thumbnail” ),
“taxonomies” => array( “category”, “post_tag” ),
“labels” => array(
“name” => “ブログ”,
“singular_name” => “”,
“menu_name” => “Livalest’s Log”,
“all_items” => “すべてのLivalest’s Log”,
“add_new” => “新規追加”,
“add_new_item” => “Livalest’s Logの新規追加”,
“edit” => “編集”,
“edit_item” => “Livalest’s Logの編集”,
“new_item” => “新しいLivalest’s Log”,
“view” => “表示”,
“view_item” => “Livalest’s Logを表示”,
“search_items” => “Livalest’s Logを検索”,
“not_found” => “見つかりません”,
“not_found_in_trash” => “ゴミ箱にはありません”,
“parent” => “親”,
)));}
YARPPと連携させるためのコードを追加
“yarpp_support” => trueを追加します。
実際に、このコードをfanctions.phpにコピーアンドペーストして終わりです。その後、下の図のように、YARPPの管理画面でカスタム投稿タイプのチェックボックスが出現していれば成功です。
参考URL
Custom Post Type UIとYARPPでカスタム投稿の関連記事を表示させる方法
Custom post type UI とYARPPで関連記事をカスタム投稿にも表示する方法
どうでしたでしょうか?また、わからなければ僕でわかる範囲でお答えできればいいなと思います。