更改 wordpress hestia 主题的首页 section 顺序

更新日期: 2018-03-12 阅读次数: 5491 分类: wordpress

由于用的是 hestia 免费版,没法使用自动调整首页 section 的功能。hestia 的 pro 版本确实太贵了,买不起。所以,我决定手动修改一下代码,以调整 section 的顺序。

通过查看 front-page.php 发现了 hestia_sections,grep 一下 hestia_sections,会发现不少的代码段

$ grep hestia_sections -r .

./inc/sections/hestia-about-section.php: add_action( 'hestia_sections', 'hestia_about', absint( $section_priority ) );

./inc/sections/hestia-shop-section.php: add_action( 'hestia_sections', 'hestia_shop', absint( $section_priority ) );

...

./front-page.php: do_action( 'hestia_sections', false );

add_action 与 do_action 的区别

  • add_action( 'foo' ) 注册一个 callback
  • do_action( 'foo' ) 执行注册的 callback

add_action 的参数列表

  • $tag: action 名
  • $function_to_add: 调用的函数
  • $priority: 调用的优先级,数字越小优先级越高。默认值为 10。从 hestia 的使用习惯看,不要使用负数。
  • $accepted_args: function_to_add 指定的函数接受的参数个数。

看一下这行代码

if ( function_exists( 'hestia_about' ) ) {
	$section_priority = apply_filters( 'hestia_section_priority', 15, 'hestia_about' );
	add_action( 'hestia_sections', 'hestia_about', absint( $section_priority ) );
}

hestia_section_priority 是在哪里定义的呢? 我 grep 了所有代码,依旧没有发现。。。这不科学啊。

https://developer.wordpress.org/reference/functions/apply_filters/

apply_filters 相当于调用 add_filter 注册的函数。

把 15 调整成 150,你就会发现 about section 成功的到了页面最后。

爱评论不评论

近期节日

2019年11月20日 国际儿童日
2019年11月21日 世界问候日
2019年11月22日 小雪
2019年11月22日 感恩节
2019年11月29日 黑色星期五
2019年12月01日 世界艾滋病日
2019年12月03日 国际残疾人日
2019年12月07日 大雪
2019年12月09日 "一二九"运动纪念日
2019年12月09日 世界足球日
2019年12月10日 世界人权日
2019年12月12日 西安事变纪念日
查看更多节日