add_filter优先级无法正常工作(Wordpress)

时间:2015-10-17 13:41:43

标签: wordpress add-filter

我的Wordpress过滤器似乎执行顺序错误。

我已经以这种方式添加了过滤器:

add_filter( 'the_content', 'display_a_single_property', 10, 1 );
add_filter( 'the_title', 'change_the_page_title', 11, 2 );
add_filter( 'wp_title', 'change_the_meta_title', 100, 1 );

奇怪的是,回调执行的顺序是:

  • change_the_meta_title()
  • display_a_single_property()
  • change_the_page_title()

根据add_filter()的文档,优先级数字越低,执行越早。然而,这不会发生在这里。它可能是主题或插件问题吗?我正在使用 Yoast SEO插件 Colormag 主题。

1 个答案:

答案 0 :(得分:2)

优先级仅在每个操作挂钩/过滤器中订购回调。他们不会自己订购钩子(它们总是以相同的顺序运行)。

例如,'wp_title' 始终'the_content'之前运行,而始终'the_title'之前运行。

优先级生效的唯一时间是,如果您在同一个挂钩中添加了多个回调(例如,为'the_content'定义了两个不同的回调)。