我刚刚开始学习Wordpress并浏览标准/默认主题。如果我正确理解了过滤器的概念,在应用它们之前,我们需要通过以下方式添加回调函数 add_filter($hook, $callback, $args) 。然而,从‘2017’主题来看,我看不到这些宣言 twentyseventeen_starter_content 然后用于: $starter_content = apply_filters( 'twentyseventeen_starter_content', $starter_content ); (file functions.php)和 twentyseventeen_front_page_sections - $num_sections = apply_filters( 'twentyseventeen_front_page_sections', 4 ); (文件FrontPage.php)。我缺少什么?如果不设置回调函数,它是如何工作的?
add_filter($hook, $callback, $args)
twentyseventeen_starter_content
$starter_content = apply_filters( 'twentyseventeen_starter_content', $starter_content );
twentyseventeen_front_page_sections
$num_sections = apply_filters( 'twentyseventeen_front_page_sections', 4 );
apply_filters 通过运行附加到它的所有回调 add_filter 到相同的挂钩/标签。如果没有回调附加到该挂钩/标记,它将返回 应用\u筛选器 。因此 apply_filters( 'twentyseventeen_front_page_sections', 4 ); 将返回 4. 如果没有 add_filter('twentyseventeen_front_page_sections', 'callbackfunc'); 。否则,在完成所有回调之后,它将以最高优先级返回add\u filter回调的结果。
apply_filters
add_filter
应用\u筛选器
apply_filters( 'twentyseventeen_front_page_sections', 4 );
add_filter('twentyseventeen_front_page_sections', 'callbackfunc');
优先级在 添加\u筛选器 作为第三个参数。
添加\u筛选器
我不知道这是否是你想要的,但我想这可能会让你更好地理解。