スラッグに特定のWordが含まれているページ/投稿に条件を適用する方法(そして、そうであれば、「どうやって」)があります。
コーデックスの例の場合:
is_single( 'beef-stew' )
ナメクジに「ビーフシチュー」ではなく「ビーフ」が含まれている場合でも、条件は適用されます。
更新:コンテキストの要求に応じて...
ページが表示されているときに、項目にCSSクラスを適用するために条件付きステートメント(下記の例)を使用するナビゲーションメニューがあります。
<?php if (is_single('mon')) { echo " class=\"current\""; }?>
上の例では、 'mon'は 'monday'です。週ごとのスケジュールの他の日についても同様です。テンプレートに追加することで、適切なスラッグを設定すれば、いつでも使用することができます。たとえば、「4月4日月曜日」の代わりに「mon」を使用することです。
スラグの一部だけに条件を適用したいので、保存する前にスラグを手動で修正する時間を節約します。そうすることを忘れた場合、誤動作の状況を取り除きます。
WordPressにはサブストリングテスト用の条件はありませんが、PHPの組み込み関数を使用してこれを行うことができます。 strpos()
global $post;
if( false !== strpos( $post->post_name, 'beef' ) ) {
// Do Things
}
beef
がポストスラグのどこかに見つかった場合、上記はtrueを返します。
@Howdy_McGeeと同じように、ヘルパー関数を作成しようとします。
/**
* @param $s String
* @return bool
*/
function queried_post_name_contains_wpse247782( $s )
{
$obj = get_queried_object();
return $obj instanceof \WP_Post // Make sure it's a post object
&& false !== strpos( $obj->post_name, $s ); // post name contains it
}
そしてそれを次のように使います。
if( is_single() && queried_post_name_contains_wpse247782( 'beef' ) )
{
// ...
}
あなたがそれをあなたのニーズにもっと拡張できることを願っています!