我的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 主题。
答案 0 :(得分:2)
优先级仅在每个操作挂钩/过滤器中订购回调。他们不会自己订购钩子(它们总是以相同的顺序运行)。
例如,'wp_title'
始终在'the_content'
之前运行,而始终在'the_title'
之前运行。
优先级生效的唯一时间是,如果您在同一个挂钩中添加了多个回调(例如,为'the_content'
定义了两个不同的回调)。