先日の記事で『WordPress Related Post』を導入してみまして、
今回はその続き、カスタマイズ編になります。
基本的にはカスタマイズしなくてもそのまま十二分に使えますが、
以前の日記に書いたとおり、以下の点でおれには不満がありました。
- 記事を選択出来るのはいいが、『選択した記事のみ表示』が出来ない
- 『関連記事なし』という場合がない
- 関連記事としてカスタム投稿タイプが選択出来ない
つーかね。ぶっちゃけどれも別に気にしなくていいっちゃーいいんですよ(;・∀・)
でもまぁ、気になったので色々ちょいと調べてみました。トライ&エラーの嵐でしたよ。
まずは、1と2を一緒に解決しちゃいます。
カスタマイズするのは、init.phpです。
1.記事を選択出来るのはいいが、『選択した記事のみ表示』が出来ない
これは、init.phpの217あたりをご確認下さいまし。
$limit = $options['max_related_posts'];
こんな記述があると思います。こいつの下に、以下のコードを追加してくださいまし。
$limit = 0; //表示させたい記事のみ表示する
そうするとあら不思議。選択した記事のみ表示され、
ランダムで追加されていた分は無くなります。
で、このままでは『まったく記事を選択してないケース』で不具合があります。
それは、表示する記事を選択してない場合、『Edit Related Post』のボタンが表示されず、
記事の選択が出来なくなるという点です((((;゚Д゚))))ガクガクブルブル
それを回避して、たとえ表示する記事が選択されてない場合でも、
『Edit Related Post』のボタンが表示されるよう、カスタマイズいたします。
カスタマイズするファイルはさっきと同じinit.php。
505行目あたりに以下の記述があると思うので、まずはそれをコメントアウト。
if (!$related_posts) {
return;
}
そして次に、520行目あたり。
以下の様な記述があります。
$related_posts_lis = wp_rp_generate_related_posts_list_items($related_posts, $selected_related_posts);
$related_posts_ul = '<ul class="' . $css_classes . '">' . $related_posts_lis . '</ul>';
こいつの一行目のあとにコードを追加して、以下のようにします。
$related_posts_lis = wp_rp_generate_related_posts_list_items($related_posts, $selected_related_posts);
if (!$related_posts_lis) {
$related_posts_lis ='<li class="related_post_title"><a class="wp_rp_title">現在準備中</a></li>';
}
$related_posts_ul = '<ul class="' . $css_classes . '">' . $related_posts_lis . '</ul>';
これで、表示する記事がなくても、『Edit Related Post』のボタンが表示され、
しかも表示する記事がない場合は、『現在準備中ですわよ』と表示されるようになります。
一応、これで1と2を解決しました。
一度確認してみます。
こんな感じで、選択中の記事を一つにすると~…
いいですね~。無事キチンと選択記事だけ表示されております。
そして記事を一つも選択しない場合は……
ホッホッホッ☆ これですよこれを実現させたかったのです(・∀・)
3. 関連記事としてカスタム投稿タイプが選択出来ない
つづいて解決するのはこれ。
カスタマイズするのは、recommendations.phpとuploader.php。
こちらのコード内の’post’の部分を、各々表示させたいカスタム投稿タイプの名前に書き換えてください。
テキストエディタにコード全体をコピペして、
エディタの『置換』を使って一発で出来たのを確認してます。
ちなみにうちは’news’というカスタム投稿タイプで確認してみました。
以下のようなリストとなります。
まぁなんて分かりやすい(・∀・)☆
では、記事の方を見てリストを確認してみます。
これが変更前……
そしてこちらが変更後。
ホッホッホッ☆ しっかりカスタム投稿タイプが選択できますなぁ(・∀・)
これらのことって、本来ならプラグインの設定画面から出来るように出来るといいんですよね。
おれはプラグインの設定画面のカスタマイズの方法を知らんので、
毎度ベタ打ちというイヤーなカスタマイズしか出来ません(;・∀・)
まぁそのうち出来るようにしたいと思ってます。
この辺は情報が全くありませんでして…(;・∀・)
特に『関連記事無し』の設定って、元はちゃんとあったらしいんですよ。
まぁ普通に使ってれば『関連記事無し』って事態にはならんので、
作者さん判断で消しちゃったのかな?
ともあれ、色々勉強をさせていただきました(`・ω・´)ゞ
いやすんません…うしおととらの歌を聞きながら記事を書いていたもので…(;・∀・)
すみません。大変助かったのですが、複数のカスタム投稿タイプで使用することは可能でしょうか?
type1でも、type2でもこの機能を使いたい
関連記事は、type1はtype1の中の関連記事だけでOK
どもども。ご質問ありがとうございます。
記事の投稿タイプと関連記事の投稿タイプも連動させたいってことですよね。
改めてソースをざっと確認してみたのですが、基本的には投稿タイプはコードベタ打ちになってます。
なので記事で’post’を’news’に置換している箇所で、記事の投稿タイプを取得する処理が必要になるかと思います。
例えばですが、
投稿タイプを’post’で指定している部分の直前で投稿タイプを取得して$post_typeに代入。
その上で’post’となってる部分を$post_typeに置き換える……とかですかね。
今、ざっと動作確認してみたのですが、なんとか連動させてみることが出来ました。
割と細かくソースを追わないと難しいと思います。
どの部分で投稿タイプが指定されているかを確認しながら進めてみて下さい。
もししんどいようなら、WordPress Related Postではなく、
YARPPを使うという手もあります。……けど、そっはそっちでカスタム投稿タイプにひと工夫する必要があるんですよね(;・∀・)
すぐにお返事いただきましたのに、確認がとっても遅くなり大変失礼しました。。
(別件対応していて、この件にようやく着手し始めた次第です、大変申し訳ありません)
教えていただいた方法で、とりあえずトライしてみたいと思います。
すべてに万能なプラグインは、なかなかないものですね…。
はじめまして。
WordPress Related Postのカスタマイズで四苦八苦している中、この記事を見つけました。
ぜひご意見をいただきたいと思います。
下記のように、WordPress Related Postの中に広告を挿入することは可能でしょうか??
↓
https://goo.gl/GWyqoP
お返事遅くなりました。すみません……
貼っていただいたurlはもうサイトがなくなってしまったようで見られないのですが、
要は関連記事の中に広告を貼りたいってことですかね。
できるとは思うのですが、ちょっとやり方が思いつかないです……
たとえばその広告用のページを一つ作っておいて、
そこから本サイトに飛ぶようにリンクを貼るとか?