wordpress文章类型函数:register_post_type()

这个函数主要是用在wordpress后台用与自定义文章类型的,使用后可以在wordpress后台单独增加一个分类,可以在此分类下发表文章。这里指的是添加一个分类,若是要调取分类用这个。

语法

register_post_type($post_type,$args)

参数

$post_type (string) (必选) 文章类型的名称(最多20个字符) Default: 空
$args (array) (可选) 一个数组参数 Default: 空

Post Type 可以自定义的功能非常多,所以这个函数里面的 $args参数会很多。所以通常会用下面这种格式来注册,也有很多是可选项:

// 注册自定义文章形式
function custom_post_type(){
$labels = array(
'name' => 'Post Type General Name','singular_name' => 'Post Type Singular Name','menu_name' => 'Post Types','name_admin_bar' => 'Post Type','archives' => 'Item Archives','attributes' => 'Item Attributes','parent_item_colon' => 'Parent Item:','all_items' => 'All Items','add_new_item' => 'Add New Item','add_new' => 'Add New','new_item' => 'New Item','edit_item' => 'Edit Item','update_item' => 'Update Item','view_item' => 'View Item','view_items' => 'View Items','search_items' => 'Search Item','not_found' => 'Not found','not_found_in_trash' => 'Not found in Trash','featured_image' => 'Featured Image','set_featured_image' => 'Set featured image','remove_featured_image' => 'Remove featured image','use_featured_image' => 'Use as featured image','insert_into_item' => 'Insert into item','uploaded_to_this_item' => 'Uploaded to this item','items_list' => 'Items list','items_list_navigation' => 'Items list navigation','filter_items_list' => 'Filter items list'
);
$args = array(
'labels' => $labels,'description' => 'Post Type Description','supports' => array('title','editor','author','thumbnail','excerpt','comments'),'taxonomies' => array( 'category','post_tag' ),'hierarchical' => false,'public' => true,'show_ui' => true,'show_in_menu' => true,'menu_position' => 5,'menu_icon' => 'dashicons-cart','show_in_admin_bar' => true,'show_in_nav_menus' => true,'can_export' => true,'has_archive' => true,'exclude_from_search' => false,'publicly_queryable' => true,'capability_type' => 'page',);
register_post_type('post_type',$args);
}
add_action('init','custom_post_type');

$labels用来配置文章类型显示在后台的一些描述性文字,默认为空。(上面代码中,为了清晰所以单独拿出来创建了一个数组 $labels)

name – 文章类型的名称(英语写为复数)
singular_name – 单篇文章类型的名称(英语写为复数)
add_new – 对应“添加新的文本”
all_items – 子菜单的字符串。默认是所有帖子/所有页面。
add_new_item – “添加新帖/新页面”
edit_item – “编辑帖子/页面”
new_item – “新贴/新页”
view_item – 用于查看帖子类型归档的标签。默认是’查看帖子’/’查看页面’
search_items – 默认是搜索帖子/搜索页面
not_found – 默认是没有发现帖子/找不到页面。
not_found_in_trash – 默认是在垃圾桶中找不到帖子/在垃圾桶中找不到页面。
parent_item_colon – 此字符串不用于非分层类型。在层次结构中,默认为“父页面:”。
menu_name’ – 菜单名称,默认与`name`相同。

$args的详细参数

description – 一些简短的介绍文字
public- 用于定义publicly_queryable,exclude_from_search,show_ui,show_in_nav_menus可见的方式, 默认是false,’true 的话即为show_ui = true,public_queryable = true,exclude_from_search = false,show_in_nav_menus = true

publicly_queryable – 可以从前台获取的变量(从url中,比如url重写),默认值:public参数的值
exclude_from_search – 是否能够被搜索到。默认值:与public参数相反的值
show_ui – 是否生成一个默认的管理页面,也就是是否在后台有管理页面。默认值:public参数的值
show_in_nav_menus -是否可以在导航菜单中选择post_type。默认值:public参数的值
show_in_menu- 是否在后台菜单项中显示,如果为ture,那么show_ui的值也必须设置为true,将会有一个顶级菜单项。 默认值:null
menu_position – 在后台菜单中的位置

5 – below Posts
10 – below Media
15 – below Links
20 – below Pages
25 – below comments
60 – below first separator
65 – below Plugins
70 – below Users
75 – below Tools
80 – below Settings
100 – below second separator
menu_icon-用于此菜单的图标的URL或iconfont中图标的名称 默认值:null – 默认为帖子图标
capability_type – 查看、编辑、删除的能力类型(capability),默认为post
capabilities – 这个帖子类型的功能的数组 (一般人用不到)。默认值:capability_type用于构造
map_meta_cap – 是否使用内部默认元功能处理,只有设置了capabilities才用的上。默认值:false
hierarchical – 文章是否有层级关系,也就是是否允许有父级文章。
supports – 对文章类型的一些功能支持

‘title’ 标题
‘editor’ (content) 编辑
‘author’ 作者
‘thumbnail’ 特色图
‘excerpt’ 摘抄
‘trackbacks’ 引用通过
‘custom-fields’ 自定义字段
‘comments’ 评论
‘revisions’ 修订版
‘page-attributes’ 页面属性,类似page,选择页面模板的那个
register_meta_box_cb – 提供在设置编辑表单的元框时调用的回调函数。回调函数使用一个参数$ post,其中包含当前编辑的帖子的WP_Post对象。在回调中执行remove_meta_box()和add_meta_box()调用。默认值:无
taxonomies – 添加已经注册了的分类法
has_archive- 文章是否有归档,就是一个所有文章归档页面
rewrite – 触发此帖子类型的重写操作。为了防止重写,设置为false。默认值:true,并使用$ post_type作为slug
* $ args数组

* ‘slug’=> string自定义永久链接结构块。默认为$ post_type值。应该是可翻译的
* ‘with_front’=> bool应该使用前置基座添加永久链接结构。(例如:如果你的永久链接结构是/ blog /,那么你的链接将是:false – > / news /,true – > / blog / news /)。默认为true
* ‘feed’=> bool应该为此帖子类型构建一个feed permalink结构。默认为has_archive值。
* ‘pages’=> bool应该是永久链接结构提供分页。默认为true
query_var – 设置此帖子类型的query_var键。 默认值:true – 设置为$ post_type false则表示禁用
can_export – 可以导出此post_type。默认值:true

实例

<?php
add_action('init','my_custom_product');
function my_custom_product()
{
$labels = array(
'name' => 'Products Name','singular_name' => 'Product Singular Name','add_new' => '添加产品','add_new_item' => '添加产品','edit_item' => '编辑产品','new_item' => '新产品','all_items' => __('所有产品'),'view_item' => '查看产品','search_items' => '搜索产品','not_found' => '没有找到有关产品','not_found_in_trash' => '回收站里面没有相关产品','parent_item_colon' => '','menu_name' => '产品'

);
$args = array(
'labels' => $labels,'description'=> '自定义的产品类型','query_var' => true,'rewrite' => true,'capability_type' => 'post','taxonomies'=> array('post_tag'),'comments')
);
register_post_type('product',$args);

$labels = array(
'name' => '产品分类','singular_name' => '产品分类','all_items' => '所有产品','parent_item' => null,'parent_item_colon' => null,'update_item' => '更新产品','new_item_name' => '新产品','separate_items_with_commas' => '按逗号分开','add_or_remove_items' => '添加或删除','choose_from_most_used' => '从经常使用的类型中选择','menu_name' => '分类目录',);

register_taxonomy(
'products',array('product'),array(
'hierarchical' => true,'labels' => $labels,)
);
}
?>

这种方法前端调用的话只需要创建:archive-product.php 模板即可,这个模板用于分类列表页的模板调用,product是我们的post type的名字。创建 single-product.php 模板即可实现分类的文章的详情页的调用。

‘taxonomies’=> array(‘post_tag’)这段代码意思是给自定义post type添加标签页面,如果需要使用WordPress自带的分类标签方法,可以写为注意,’taxonomies’=> array(‘post_tag’,‘category’)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


我想将wordpress的默认接口路由改掉,愿意是默认的带一个 wp-json,我想换成 api,直接简单明了。默认路由https://www.xxzhuti.com/wp-json/wp/v2/posts/1新的路由https://www.xxzhuti.com/api/wp/v2/posts/1路由修改wordpress提供了一个钩子来修改 wp-json 的地址,代码入汛function r
wordpress自定义分类法之后,我看到链接都自动在后面添加了一个斜杠,如下图所示打开链接后都是先从一个链接301后到另外一个链接,我这个纳闷,然后一顿找原因,最后竟然是因为固定链接看我后台的固定链接是 /%post_id%/ 这么写的,然后每次都会301自动跳转。正确的写法是 /%post_id%.html 这样写才不会301跳转。一个小问题,往往一个小问题就会折腾好长时间,在这记录一下吧..
事情是这样的,我用 get_post_type 函数创建了一个自定义分类法类型,然后自定义了文件的访问路径代码如下。function tblog_chat_template( $template_path ){    if ( get_post_type() == 'aichat' ) {         if ( is_single() )         {             $temp
最近网站莫名其妙的被顶上了,过一个多小时,就注册一个账号,虽然不多,但是也挺烦,时间一长垃圾注册的就多了。由于我前台把注册关掉了,只允许用第三方登录,经过查找发现是通过后台注册的,后台无须邮箱验证即可注册,也是就想着在后台加个验证码。效果如下实现方法一将下面的代码加入到 function.php 中,刷新页面就会看到。//WordPress新用户注册随机数学验证码function add_s...
最近服务器要到期了,就想着把网站转移到另外一台服务器,本来打算要续费的,但是腾讯云的服务器有了新的规定,域名必须在腾讯云备案才能使用,在别的地方备案的域名需要转到腾讯云,在腾讯云在走一遍备案流程,若是备案简单,时间短也就无所谓了,就转一下,可是这个备案大家也知道,至少得一个月,于是就只能放弃腾讯云了,将站点转回备案的阿里云,以后就用阿里云了,贵点就贵点吧。这不网站迁移过去了,死活图片不显示,各..
今天在写wordpress的接口,然后碰到个奇怪的问题,怎么访问都提示 rest_no_route 的错误,然后就一直跟踪代码,终于找到原因所在。报错信息{'code': 'rest_no_route','message': '未找到匹配URL和请求方式的路由。','data': {'status': 404}}原因分析register_rest_route( string $namespace,
今天看到群友突然滴滴滴的找我QQ,好像出什么大事情一样。原来他由于误操作导致网站文章被删除。
今天遇到一个网友提示网站访问速度比较慢,然后通知日志看到有他的网站WordPress默认登录地址wp-login.php一直在被爬虫抓取,因为是有被破解后台账户信息,导致的占用数据库资源使得网站资源带宽不足后访问降低导致
今天老左在帮助客户升级WordPress的时候我看他网站也比较简单就直接在后台手工升级的。升级后打开网站有出现"There has been a critical error on your website."的错误提示。
我们在使用WordPress搭建的网站是否有留意查看源代码的时候看到标题中的原本"-",被转义成"&#8211"。其实这样并不影响用户阅读体验和搜索引擎,搜索引擎在收录后也会反向转义的。就是感觉看
WordPress默认是无法上传.webp格式的文件,如果要上传需要对上传文件限制进行解除后才能上传。
GTranslate 是一个流行的翻译插件,在免费和付费版本中提供不同的体验。 使用免费版本,您可以轻松提供任何语言的动态翻译,而付费版本提供可索引、可编辑的翻译版本,就像 Weglot 一样。
时下主流的浏览器都自带了广告屏蔽功能,还有ADSafe、ADB等软件插件,不断更新,屏蔽网站代码!
您是否正在寻找可用于显示数据的 WordPress 表格插件? WordPress 表格插件可让您以表格格式存储和呈现数据,以方便访问者阅读。
wordPress数据库除了本身的表以外,部分插件会增加表来存储数据。如果插件已经删除了,这些插件生成的表还在数据库中,那么怎么删除呢?
WordPress几乎是世界上最安全的开源程序,但其后台登录注册的地址始终是众所周知的,所以不少人觉得隐藏WordPress的登录地址后可能会更加安全。下面浩子就针对这个问题来简单说明一下方法。WordPress隐藏后台登录地址
自 WordPress 5.8 正式版发布 以后,后台的小工具就默认是块编辑器的界面样式,很多老用户还没有来得及学习就一脸茫然了,今天浩子就来教大家如何恢复WordPress经典小工具。
您想用您的语言翻译 WordPress 插件吗?许多 WordPress 插件是完全可翻译的,世界上任何人都可以轻松翻译。在本文中,我们将向您展示如何轻松地将 WordPress 插件翻译成您的语言(无需任何代码)。
WordPress新手不清楚WordPress调试模式怎么开启,今天来教大家认识和开启。什么是WordPress的调试模式
最近不少用户反馈说WordPress后台的外观-自定义点开后直接报错,错误信息如下: