php the title,php - 为什么the_title()过滤器也应用于菜单标题? - SO中文参考 - www.soinside.com...

发布这个答案,因为这是搜索结果,我最终点击时搜索有关过滤器钩子the_title的目标,同时忽略导航项目的过滤效果。

我正在处理主题中的一个部分,我想在标题一个标记内向页面标题添加按钮。

它看起来像这样:

<?php echo '

' . apply_filters( 'the_title', $post->post_title ) . ''.PHP_EOL; ?>

然后我像这样“挂钩”:

add_filter( 'the_title', 'my_callback_function' );

但是,上面的目标实际上是调用the_title过滤器钩子的所有东西,这包括导航项目。

我改变了过滤钩定义,如下所示:

<?php echo '

' . apply_filters( 'the_title', $post->post_title, $post->ID, true ) . ''.PHP_EOL; ?>

几乎每次调用the_title过滤器都将参数1作为$post->post_title,将参数2作为$post->ID。搜索apply_filters( 'the_title'*的WordPress核心代码,你会亲眼看到。

所以我决定在我想要定位调用the_title过滤器的特定项目的情况下添加第三个参数。这样,我仍然可以获得默认情况下应用于the_title过滤器挂钩的所有回调的好处,同时还能够使用the_title过滤器挂钩和第三个参数半独特地定位项目。

这是一个简单的boolean参数:

/**

* @param String $title

* @param Int $object_id

* @param bool $theme

*

* @return mixed

*/

function filter_the_title( String $title = null, Int $object_id = null, Bool $theme = false ) {

if( ! $object_id ){

return $title;

}

if( ! $theme ){

return $title;

}

// your code here...

return $title;

}

add_filter( 'the_title', 'filter_the_title', 10, 3 );

根据需要标记变量。这对我有用,它完全符合我的需要。这个答案可能与提出的问题没有100%的相关性,但这是我在寻找解决这个问题时到达的地方。希望这可以帮助处于类似情况的人。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值