WordPress短代码Shortcode的使用教程(WordPress注册文章类型函数:register_post_type)
文章目录
WordPress短代码Shortcode的使用教程
wordpress短代码的作用是,把它放到文章或者页面时,它会被替换成一些其它的内容。
wordpress短代码的使用非常简单,比如我们想显示最新的文章,可以使用短代码
或者设定一个参数来控制实现文章的数量
或者给短代码增加一个标题
[recent-posts posts=”9″]最新文章[/recent-posts]
创建短代码的步奏
1、创建一个函数,当wordpress发现短代码的时候会调用此函数
2、设置唯一的名称,来注册短代码
3、把注册的函数绑定到wordpress的action上
实例说明
1、创建回调函数
当wordpress发现短代码时,会用这段函数的代码进行替换
如上代码,我们创建了一个回调函数,获取最新文章,并返回一个带链接的字符串,注意回调函数不打印任何内容,而是返回一个字符串。
2、注册短代码
现在我们注册一个短代码,以便wordpress可以识别
当文章中发现短代码[recent-posts]时,将会自动调用recent_posts_function()函数
3、将短代码绑定到wordpress的钩子上
现在可以创建一篇文章将短代码加入到文章中看看是否好用吧。
进阶短代码
1、短代码的参数
短代码非常灵活,它允许我们添加参数,假如我们要显示一定数量的最新文章,我们可以这样写
但是如何在自定义函数中获取到短代码的参数呢?这里我们要用到两个函数shortcode_atts()函数和extract函数
shortcode_atts 作用是把用户短代码的属性和本地属性相结合
extract 此为PHP的函数,它可以提取短代码的各个属性。
扩展一下我们之前的函数,传递一个参数$atts
如果短代码中不传递参数,posts=>1 将是默认值,传递完参数将用参数的值,注意一下,短代码可以添加多个参数
2、短代码中添加内容
进一步扩展我们的短代码函数,添加一些内容作为参数传递,这将是最新文章列表的标题。为了实现这种功能,我们需要在函数中添加第二个参数$content。
上面的回调函数,短代码使用于[recent–posts posts=”5″]最新文章[/recent–posts]
在其它地方显示短代码
默认情况下侧边栏是忽略短代码的,想要实现需要添加对应的过滤函数
1、在侧边栏显示
2、在评论页面显示
3、在摘要中显示
WordPress注册文章类型函数:register_post_type
WordPress函数register_post_type用于注册新的文章类型,不应该在init动作前挂载,所有分类法都通过$taxonomies参数注册,以确保在使用诸如“parse_query”或“pre_get_posts”之类的钩子时的一致性。
1 |
register_post_type( string $post_type, array|string $args = array() ) |
函数参数
$post_type
字符串
自定义文章类型,只能包含小写字母、数字或下画线,可以使用sanitize_key()函数检查。
$args
数组或字符串
label
字符串
菜单中显示的文章类型的名称。
labels
数组
文章类型的标签数组,如果没有设置,非层级的文章类型继承post标签,层级的文章类型继续page标签。
description
字符串
文章类型的简要描述。
public
布尔值,默认值:false
是否在管理界面或公开给前端用户使用。
hierarchical
布尔值,默认值:false
是否支持层级
exclude_from_search
布尔值,默认值:继承$public
是否在前端搜索结果中排除该文章类型
publicly_queryable
布尔值
是否可以作为parse_request()的一部份在前端对post执行查询
show_ui
布尔值,默认值:继承$public
是否在后台管理中显示
show_in_menu
布尔值,默认值:继承$show_ui
是否在后台菜单中显示
show_in_nav_menus
布尔值,默认值:继承$public
是否在导航菜单中显示
show_in_admin_bar
布尔值,默认值:继承$show_in_menu
是否在后台工具栏中显示
show_in_rest
布尔值
是否在REST API中使用,设置为true将在块编辑器中可用
rest_base
字符串,默认值:$post_type
更改REST API的基础路径
rest_controller_class
字符串,默认值:WP_REST_Terms_Controller
REST API控制器类名
menu_position
整数
在菜单位置中显示文章类型,要显示,$show_in_menu的值必须为true
menu_icon
字符串
菜单的图标,传递base64编码的SVG图像
capability_type
字符串或数组
用于构建读取、编辑和删除功能的字符串
capabilities
数组
该文章类型的权限
- edit_post、read_post和delete_post:根据上下文映射到相应的原始权限,即正在编辑/读取/删除的帖子以及正在检查的用户或角色。因此,这些权限通常不会直接授予用户或角色;
- edit_posts:编辑文章;
- edit_private_posts:编辑私有文章;
- edit_others_posts:编辑其他用户的文章;
- edit_published_posts:编辑已发布的文章;
- publish_posts:发布文章;
- read:控制是否可以阅读这个文章类型;
- read_private_posts:阅读私有文章;
- delete_posts:删除文章;
- delete_private_posts:删除私有文章;
- delete_published_posts:删除已发布的文章;
- delete_others_posts:删除其他用户的文章。
map_meta_cap
布尔值,默认值:false
是否使用内部默认meta
supports
数组
文章类型支持的核心功能,核心功能包括“标题”,“编辑”,“评论”,“修订”,“引用”,“作者”,“摘录”,“页面属性”,“缩略图”,“自定义字段”和“文章格式”
register_meta_box_cb
回调函数
通过回调函数来设置meta boxes
taxonomies
数组
文章类型要使用的分类法,分类法通过register_taxonomy()函数注册
has_archive
布尔值,默认值:false
是否应该有该文章类型的归档
rewrite
布尔值或数组
是否启用URL重写,设置为false禁止URL重写,默认为true
- slug:别名,默认值:$post_type;
- with_front:布尔值,是否应在permastruct前面加上WP_Rewrite::$front,默认为true;
- feeds:布尔值,是否支持feeds,默认值继承$has_archive;
- pages:布尔值,固定链接是否提供分页功能,默认为true;
- ep_mask:要分配的端点掩码,如果未指定并且设置了permalink_epmask,则继承自$ permalink_epmask。 如果未指定并且未设置permalink_epmask,则默认为EP_PERMALINK。
query_var
字符串或布尔值
设置该文章类型的查询Key,默认为$post_type,如果为false,则无法以?{query_var}={post_slug}的方式加载文章
can_export
布尔值,默认值:true
是否允许导出文章
delete_with_user
布尔值
删除用户时是否同步删除该用户的文章,默认为空,表示文章类型支持作者功能时则删除文章。
template
数组
用作编辑器会话的默认初始状态的块数组,每个项目都应该是一个包含块名称和可选属性的数组。
template_lock
布尔值或字符串
如果设置了$template,是否应该锁定块模板。如果设置为“all”,则用户将无法插入新块,移动现有块和删除块。如果设置为“insert”,则用户可以移动现有块,但无法插入新块和删除块。 默认为false。
_builtin
布尔值,默认为false
仅限内部使用,如果文章类型是内置类型,则为true。
_edit_link
字符串
仅限内部使用,用于文章编辑链接的字段post.php?post=%d
函数使用示例
1 |
add_action(\\\'init\\\', \\\'my_cpt_init\\\');function my_cpt_init() {register_post_type( ... );}add_action(\\\'after_switch_theme\\\', \\\'my_rewrite_flush\\\');function my_rewrite_flush() {my_cpt_init();flush_rewrite_rules();} |
扩展阅读
register_post_type()函数位于:wp-includes/post.php
相关函数:
- sanitize_key()
- register_taxonomy()
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress短代码Shortcode的使用教程(WordPress注册文章类型函数:register_post_type)