条件语句可以应用于部分辅助程序吗?

时间:2016-11-29 作者:glvr

是否有一种方法(如果有,“如何?”)将条件应用于slug包含特定单词的页面/帖子。

在Codex的示例中:

is_single( \'beef-stew\' )
如果鼻涕虫含有“牛肉”,而不是“炖牛肉”,则该条件仍然适用。

更新:响应上下文请求。。。

我有一个nav菜单,它使用一个条件语句(下面的示例)将css类应用于正在查看的页面中的项目。

 <?php if (is_single(\'mon\')) { echo " class=\\"current\\""; }?>
在上述示例中,“mon”是“monday”,与周计划中的其他日期类似。通过添加到模板,它可以用于任何一天,只要我设置了一个适当的slug。。。例如,使用“mon”代替“Monday April 4”。

我想将该条件仅应用于slug的一部分,从而节省在保存之前手动修改slug的时间。。。如果我忘记这样做,也可以消除mis功能的情况。

2 个回复
SO网友:Howdy_McGee

WordPress没有用于子字符串测试的条件,但您可以使用PHPs内置函数执行此操作:strpos()

global $post;

if( false !== strpos( $post->post_name, \'beef\' ) ) {
    // Do Things
}
如果beef 在后鼻涕虫的某处发现。

SO网友:birgire

以与@Howdy\\u 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\' ) )
{
    // ...
}
希望您能将其进一步扩展到您的需要!

相关推荐