[WordPress]Jetpack関連記事のpriorityを変更する

Pocket

Jetpack関連記事のpriority(優先度)の変更の仕方の紹介。

Jetpackの関連記事(Related Posts)の優先度はデフォルトで40に設定されている。(ソース#plugins/jetpack/modules/related-posts/jetpack-related-posts.phpを参照)

あまり無い例だとは思うが、例えばYARPPなど機能の競合するプラグインを同時に使いたい場合、YARPPのpriorityは1200がデフォルトなので、表示順はJetpack->YARPP固定となってしまう。

あり得そうなのは、同じJetpackの機能である共有(いいね!ボタン)を関連記事の場所と入れ替えたいケースかな。


とりあえず、今回はJetpackの優先度を下げて関連記事の表示順をYARPP->Jetpackにしてみようと思う。

スポンサードリンク


テーマから変更する方法

と言ってもあまり難しくは無く、以下のコードをテーマのfunctions.phpに追加すればいいだけ。
function jetpackme_chg_priority() {
    // インスタンスを取得
    $jprp = Jetpack_RelatedPosts::init();
    $func = array( $jprp, 'filter_add_target_to_dom' );

    // フックされているフィルターを削除
    remove_filter( 'the_content', $func, 40 );
    // 任意のpriorityに変更
    add_filter( 'the_content', $func, 1201 );
}
add_filter( 'wp', 'jetpackme_chg_priority', 20 );

この例では、YARPPのpriority(1200)より低くしなくてはならないので1201にセットした。


上記の場合、PC表示の時しか表示順が変更されない。
モバイルテーマにも反映させる場合は、モバイル用のテーマに上記を記載するか以下の様にプラグインを作成する。

※)JetpackやWP Touch等のプラグインを利用してモバイル表示させている場合はプラグインを作成する。(アップデートの度に修正が必要になるのを回避)


プラグインを作成する方法

wp-contents/pluginディレクトリにfreebook.php(名前は何でもいい)を作成。
以下を保存して有効化する。
<?php
/*
Plugin Name: Free Book(好きな名前)
Plugin URI: 
Description:
Version: 
Author: 
Author URI: 
License: 
*/

function jetpackme_chg_priority() {
    // インスタンスを取得
    $jprp = Jetpack_RelatedPosts::init();
    $func = array( $jprp, 'filter_add_target_to_dom' );

    // フックされているフィルターを削除
    remove_filter( 'the_content', $func, 40 );
    // 任意のpriorityに変更
    add_filter( 'the_content', $func, 1201 );
}
add_filter( 'wp', 'jetpackme_chg_priority', 20 );
?>

このように自分専用のプラグインを一つ作っておくと今回の様なケースに便利。あとで似たような修正を入れる場合はfreebook.phpに追加していけば良い。


既存のプラグインを使う方法

もしくはPrioritize Hooksというプラグインがあるのでこれを使用する。
現在フックされているaction(filter)の一覧を出してくれ、任意のpriorityに変更できるという代物。

ただしこの記事を書いている時点ではダウンロード件数や評価の数が少なすぎるので、あまり当てにしすぎるのはちょっと怖いかなーと個人的には思ってたり。

取りあえず動かしてみたのだが、Jetpackの方のpriorityは参照できなかった。
YARPPは参照できるので、こちら側のpriorityを変更することで表示順序を変えられる。


priorityの変更方法は、どんなプラグインを使うにせよ応用が効くものだと思う。
面倒なのは、プラグインのソースを読まなければどのaction(filter)がどんな働きをしていて、そのpriorityはいくつなのかが分からない事だ。

この作業を補助する目的として、プラグインを入れてみるのも良いかもしれない。



参考:



お役に立てましたか?

ブックマークをどうぞ!

スポンサード リンク

コメントを残す