如何在自定义文章类型中设置仅显示指定的文章格式?
自定义文章类型限制显示指定文章格式的方法
嘿,这个需求我之前帮客户处理过,其实只需要两步就能轻松实现:
1. 保留基础的文章格式支持配置
你当前在自定义文章类型注册代码里设置的'supports' => array('title','author','post-formats')是正确的基础配置,先保留它——这一步是让你的自定义文章类型具备启用文章格式的能力。
2. 添加过滤器限制可用格式
默认情况下,开启文章格式支持后,WordPress会显示主题所有已启用的文章格式。要只显示你指定的link、audio、video,需要添加一个过滤器,针对你的自定义文章类型过滤掉不需要的格式。
把下面的代码加到你的主题functions.php文件或者自定义插件里:
function restrict_my_cpt_post_formats($available_formats) { // 获取当前后台页面的信息 $current_screen = get_current_screen(); // 检查当前编辑的是你的自定义文章类型(把'my_cpt'改成你的CPT实际slug) if ($current_screen && $current_screen->post_type === 'my_cpt') { // 返回你想要显示的文章格式数组 return array('link', 'audio', 'video'); } // 其他文章类型保持默认可用格式 return $available_formats; } add_filter('post_formats', 'restrict_my_cpt_post_formats');
关键提醒:
- 一定要把代码里的
my_cpt替换成你实际注册自定义文章类型时用的slug(就是register_post_type()函数第一个参数的字符串)。 - 如果你的主题还没启用文章格式,需要先在
functions.php里添加add_theme_support('post-formats', array('link', 'audio', 'video'));(不过你说已经显示所有格式,说明主题已经开启了,这步可以忽略)。
设置完成后,当你编辑这个自定义文章类型的内容时,右侧的文章格式 metabox就只会显示你指定的三种格式啦~
内容的提问来源于stack exchange,提问作者Ravi Patel
相关产品推荐
相关产品推荐

