$post
在筛选器中未定义。您需要明确地调用$post
在您的筛选器函数中全局设置,以使其可用。您必须记住,函数外部的变量(甚至全局变量)在函数内部是不可用的,这就是PHP的工作方式。
您实际上不需要使用$post
全局,post ID作为第二个参数通过引用传递给the_title
滤器
您可以使用以下选项:
add_action( \'the_title\', \'adddd\', 10, 2 );
function adddd( $title, $post_id )
{
if( has_category( 30, $post_id ) ) {
$title = \'Prefix \' . $title;
}
return $title;
}
如果您只需要以主查询/循环中的帖子标题为目标,您可以在额外的
in_the_loop()
条件