Genesis主题框架下的自定义模板与普通WordPress主题的自定义模板并没有很大区别,首先要创建一个模板文件,例如page-news.php,该模板将只读取post type是news的文章。模板开头的声明也是一样的:
<?php /* Template Name: News Template */ ?>
此时,进入编辑页面界面就可以选择名为News Template的模板了
如果没有Genesis框架,那我们就要拷贝html和php代码了,一堆堆的结构会不会让你头晕。Genesis的工作模式更像functions.php,几乎所有东西都是靠hooks输出的。通过钩子函数和自定义函数就可以轻松修改模板。
输出类型是news的新闻,要借助genesis_loop钩子修改主循环的数据,genesis_loop定义在lib/structure/loops.php中,用来输出主循环。为了修改主循环,首先移除genesis_loop默认加载的genesis_do_loop函数,换成我们自己的输出函数,看代码
remove_action('genesis_loop', 'genesis_do_loop'); add_action('genesis_loop', 'custom_loop'); function custom_loop() { global $paged; $args = array('post_type' => 'news'); genesis_custom_loop($args); }
数据已经更改了,接下来输出模板其他部分
<?php genesis(); ?>
整个模板文件的代码是这样的
<?php /* Template Name: News Template */ remove_action('genesis_loop', 'genesis_do_loop'); add_action('genesis_loop', 'custom_loop'); function custom_loop() { global $paged; $args = array('post_type' => 'news'); genesis_custom_loop( $args ); } genesis(); ?>
如此简单清晰的结构是不是没那么令人头痛了