WordPressで通常の投稿や固定ページとは違う記事の集まりができる【カスタム投稿タイプ】。WordPressの使い方をいろいろ調べていると、カスタムフィールドと並んで興味を持つ機能です。
で、早速CPTUI
などのプラグインを使って意味不明な内容を読解しながら作成完了!!いざ投稿をば!!とやってみたものの、いつもは投稿と同時に情報が収集されているブログランキングやブログサークルなどのコミュニティへ反映されない、なんで???と思った方へ対処方法を紹介します。
ブログランキングやコミュニティサイトへ記事が反映されるしくみ
前置きとして、なぜ反映されないのか?について簡単に説明しますね。
ブログランキングなどでは、ブログというインターネットツールで記事を投稿したときに必ず行われる2つのアクションを元に新しい記事を反映させています。
使われているのは【Ping送信機能】と【RSS FEED】です。仕組みとしては、記事が投稿されたときに送信される【Ping】送信の情報を元に、【RSS FEED】から情報を取得して表示するようになっています(サイトの仕組みによってはPing送信後実際のページから情報を収集するものもあります)。
WordPressにもこの機能があることから、ワードプレスは「ブログサイト作成ツール」と呼ばれているのです。投稿を通知できるブログの機能と固定ページやブログにないコンテンツを作成できるHTMLサイトのような機能を両方持つツールということなんですね。
従って【Ping送信機能】と【RSS FEED】が動作していなければランキングなどには反映されないのです
カスタム投稿タイプの記事をランキングサイトなどへ反映する方法
カスタム投稿タイプは誰でも作れて、中にはプラグインでも勝手に作られるものです。そして、作成した経験のある方なら分かると思いますが、自身で都合のよい名前を設定できるようになっています。
そうなると、プラグインで作成されたデータまで【Ping送信機能】と【RSS FEED】が動作してしまい不都合が生じる場合もありますから初期状態でこの2つが機能しないようになっているのだと思われます。
であれば、このカスタム投稿はPing送信してくださいね、RSS Feedに情報を追加してくださいねと指示すればきちんと反映されるということになります。
これらを動作させるにはテーマのfunctions.phpへこれから紹介するコードを追加します。functions.phpは重要なファイルなので編集に失敗するとWordPressが正常に動作しなくなりますから気を付けて行ってください。
一応転ばぬ先の杖としてもしも、もしも不具合が発生したら・・・のための記事をリンクしておきます
カスタム投稿タイプで投稿した記事でPing送信機能を使う方法
下のコードをfunctions.phpへ挿入します
function カスタム投稿タイプ名_pings_at_publish( $post_id ) {
wp_schedule_single_event( strtotime( '+10 min' ), 'do_pings', array( $post_id ) );
}
add_action( 'publish_カスタム投稿タイプ名', 'カスタム投稿タイプ名_pings_at_publish', 10, 1 );
「カスタム投稿タイプ名」の部分を修正します。
カスタム投稿タイプで投稿した記事をRSS FEEDへ追加する方法
下のコードをfunctions.phpへ挿入します
// functions.php
function myfeed_request($qv) {
if (isset($qv['feed']) && !isset($qv['post_type']))
$qv['post_type'] = array('投稿タイプ名1', '投稿タイプ名2');
return $qv;
}
add_filter('request', 'myfeed_request');
上記のコードで「投稿タイプ名1」「投稿タイプ名2」のところに投稿タイプの名前(半角英数字)を入れます。もちろん1つだけなら「投稿タイプ名2」のところは削除すればいいし、数が多ければ「, ‘投稿タイプ名2’」の部分を増やせばOKです。
コードが完成したらテーマのfunctions.phpへ記述を追加すれば完了です
テストとして、RSSフィードを開いてみてくださいね(http://サイトURL/?feed=rss2で表示されます)
表示されない場合は投稿タイプの入力の問題だと思われますので確認してください。
おまけ こんな使い方もある
今回は反映させる方法を紹介しましたが、逆にこの機能を設定しなければブログランキングなどに記事は反映されませんから、投稿タイプごとに情報を送信した方がいいかどうかを決めて運用することでよりいろいろな内容を持つサイトを作成できるようになります。
また、普段は反映されるようにしておいて、この記事だけ機能を停止したいというときは
を使うことで実現できます。