運命は…変えられる

WordPress で制作していると get_option という大変便利な関数があって助かりますが…

この関数で設定したものを、特定条件のときだけ変更したい場合、それを使っている箇所を変更すればいいんですが、いろんな場所で使っている…というとき。

実は get_option の値は、一箇所で変更できます。

get_option の内容を変更する

変更方法はこちら

もうすっ飛ばして解決したい方は↑からどうぞw

フィルターフックの説明を見ていたらこんな項目がありました。

option_(option name)  の項目

get_option 関数で取得した設定値に対し、配列ベースの設定を解読した後に適用される。例えば foo という設定について get_option(“foo”) の出力値をフィルターする場合、”option_foo” という名前のフィルターを追加して使用する。

プラグイン API / フィルターフック一覧

なるほど… ということは add_filter で option_{オプション名} で変更できるということか。

やってみたらできました。

今更こんなことを知ってしまうと、「今まで変なことしてないよな…」と考えちゃう。

カスタマイズコード

なにをしたいかによりますが、変更したい option をとっ捕まえて変えちゃうコードです。

サンプルとして無用な誤解を避けるために hoge を使います。

/**
$hoge = get_option( 'hoge', 'foo' );
の設定変更
*/
function set_hoge_change( $option ) {
  // 投稿IDが 1111 だったら get_option( 'hoge' ) の値を 'baa' にする
  $change_post_id = 1111;
  $post_id = get_the_ID();
  if ( $post_id == $change_post_id ) {
    return 'baa';  
  }
  return $option; // 投稿IDが該当しない場合は設定値を返す
}
add_filter( 'option_hoge', 'set_hoge_change', 10, 1 );

こんな感じかな。

投稿IDで変更してますが、いろいろ応用できると思います。

以上です!

この記事が気に入ったら
いいね ! しよう

Twitter で