[WordPress]PostPostプラグインで個別記事(Single)の設定が反映されない件の解決法

Pocket

 PostPostは、ブログ記事の前後に任意の定型文を挿入できるプラグインです。
 このプラグインについての詳細は他のサイト様にお任せするとして・・・

参照:【PostPost】定型文管理をラクラクこなせるWordPressプラグイン


 設定の「Before Single Post on Page」と「After Single Post on Page」がどうしても個別記事に反映されないのでソースを見てみました。そして意図した通りに動作するように改造しました。


 正直、正式にリリースされているプラグインに手を加えるのは好きではありません。保守性が損なわれるのでかなり不本意です。でもすぐに何とかしたかったのでいじっちゃうことにしました。そのかわり、バージョンアップの度にいちいち修正するのは面倒なので、製作者が気に入る状態に変更するまでこのプラグインのバージョンアップは控えます。

スポンサードリンク


postpost.php

(略)
if(is_feed()) {
return $wppp_prefeed.$content.$wppp_postfeed;
}
if(is_page()) {
return $wppp_prepage.$content.$wppp_postpage;
}
if(!is_page()) {
return $wppp_prepost.$content.$wppp_postpost;
}
if(is_single()) {
return $wppp_presingle.$content.$wppp_postsingle;
}
(略)


 これどう考えても4つ目のif(is_single())まで辿りつけないと思うんですけど・・・。
 1つ目のifは、「feedが呼ばれたら処理を返す」記述です。
 2つ目のifは、「固定記事が表示されたら処理を返す」記述です。
 3つ目のifは、「固定記事以外が表示されたら処理を返す」記述です。

 個別ページ(single)が呼ばれても、3つ目のifで処理が返されてしまいます。4つ目のifは使われないロジック化しています。

 ってことで自分は以下の様にしました。

if(is_feed()) {
return $wppp_prefeed.$content.$wppp_postfeed;
}
if(is_page()) {
return $wppp_prepage.$content.$wppp_postpage;
}
if(is_single()) {
return $wppp_presingle.$content.$wppp_postsingle;
}

if(!is_page()) {
return $wppp_prepost.$content.$wppp_postpost;
}
/**
if(is_single()) {
return $wppp_presingle.$content.$wppp_postsingle;
}
**/


 3つ目と4つ目のifを入れ替えただけです。



お役に立てましたか?

ブックマークをどうぞ!

スポンサード リンク

コメントを残す