头像

Shawn

欢迎来到我的博客!

意外发现WordPress4.7+新特性!

 11月前  •   黑科技  •     •   1.26k  •   2

开发新主题过程中,因为想要开发“说说”这一功能,逛到了JVWordPress主题制作-碎语说说功能,在里面附的官方文档上发现wordpress竟然还有status这种文章形式,当时就感到十分惊喜,毕竟不用自己再额外创建文章类型了。

然额故事并没有结束,我又浪费了好长时间查阅资料,才发现wordpress4.6及以前的版本竟然不支持自定义文章模板,除非使用插件,然而这些插件无一例外都是新建文章类型,与我不想额外创建文章类型的想法冲突,而且不想依赖太多主题,就果断放弃了。但是我还发现,在WordPress 4.7中,自定义模板的功能被扩展到了文章,以及更多的文章类型。我们只需要在自定义文件的头部添加以下几行

PHP<?php
/*
Template Name: 说说
Template Post Type: post, status
*/

这样,我们就可以在 post(文章),status(状态)等类型的文章中选择使用这个名字为说说的页面模板了!只要你的主题中有一个适合文章的模板,那么在后台文章编辑页面就会出现“页面属性”选项框。这个“模板”的标题,可以在注册文章类型的时候进行定义。

但是,假如说你想要公开地发布一个WordPress主题,那么WordPress 4.7之前的版本将会忽略其中的 Template Post Type 参数。为了防止这种情况发生,我们把该模板排除在外。下面是代码示例:

PHP<?php
function makewp_exclude_page_templates( $post_templates ) {
	if ( version_compare( $GLOBALS['wp_version'], '4.7', '<' ) ) {
		unset( $post_templates['templates/single-status.php'] );
	}
	return $post_templates;
}
add_filter( 'theme_page_templates', 'makewp_exclude_page_templates' );

这样,既可以在WordPress 4.7中使用自定义文章模板功能,又可以回溯兼容以前的版本。至此,说说功能就大功告成啦!

上一篇:
下一篇:

 评论


 已有2条评论

  1. 晴和君 潜水 Mac OS X 10_12_6 | Safari浏览器 603.3.8 11月前

    这个好用诶~

    • Shawn 萌萌哒博主 Mac OS X 10_12_4 | Safari浏览器 603.1.30 11月前

      晴和君是的呢,不用写多余的模板|´・ω・)ノ