WordPress 自定义文章类型备忘录
WordPress 自定义文章类型用的人不太多吧。在用 WordPress 搭建 CMS 或企业网站的过程中,经常会遇到定义新的文章类型(Custom Post Type)和自定义的分类法(taxnomy)。WordPress 函数默认的参数往往都是针对默认的post文章类型,比如我们要添加“产品”、“服务”等文章类型,就需要用到自定义文章类型。关于自定义文章类型的创建方法,网上有很多介绍的文章,在此不再细述,由于 Maie 对于 WordPress 和代码不太熟悉,这里只摘要一些内容进行备忘。
创建和管理自定义文章内容和分类法
创建自定义文章类型 Maie 使用的是 Custom Post Type UI 插件(简称CPT UI),关于插件的使用方法,请自行百度。创建时只需要将标红色 * 星号的自定义文章类型名称和分类名称写为小写英文即可。
注意的是其中 Has Archive? 选项我设置为 False, 如果设置为 Ture 时,草稿和其它类型的文章也会显示在后台的文章列表中,不清楚具体原因。
显示自定义分类归档
显示自定义分类归档可以参考 WordPress 官方整理的模板层次结构图
若要显示“xx类型归档:标题”可以在 archive.php 或 tag.php 或 template-tags.php 中加入对自定义文章类型的判断。
if ( is_tax('自定义分类法名称xxx') ) {
$title = sprintf( __( 'xxx Archives: %s', '主题名称' ), '' . single_cat_title( '', false ) . '' );
}
如何获取自定义的文章类型文章
若使用 CPT UI 创建的自定义文章类型时启用 Tag 标签,则在此自定义的文章类型下新建文章时设置的 Tag 标签在默认主题中点击是无法显示该标签的归档内容的。表现为若此 tag 标签仅存在于该自定义文章类型中,则点击标签时显示为:未找到;若此 tag 在该分类和 post 类别均有相关文章,则 post 类别中的文章可以正常显示,其它不显示。
以下有两种方法用于在程序中获取自定义的文章类型文章:
- 在函数中指定 post_type 和 taxnomy 的参数,参见: http://codex.wordpress.org/Post_Types
- 在插件或者主题的function.php中,通过pre_get_posts添加post类型,这样页面中就不需要考虑多种文章类型的获取了。
// Show posts of 'post', 'product' and 'service' post types on archive page add_action( 'pre_get_posts', 'add_my_post_types_to_query' ); function add_my_post_types_to_query( $query ) { if ((is_tag()||is_archive()) && $query->is_main_query() ) $query->set( 'post_type', array( 'post', 'product', 'service' ) ); return $query; }
上面的例子是在tag存档和分类存档页面返回文章、产品和服务三种文章类型的文章,也可以根据分类,作者,自定义的分类进行判断。
相关文章显示自定义文章类型
在无觅等相关文章插件中显示自定义文章类型,需要修改无觅相关文章插件的内容, 在 private function canDisplayWumiiContent() 中
get_post_type() == 'post'
后面添加
(get_post_type() == 'post'||get_post_type() == '自定义文章类型')
除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。查看声明
本文链接地址: https://maie.name/606.html
订阅本站:https://maie.name/feed,打赏:https://maie.name/donation
测试