WordPress 自定义分类选项是在 WordPress 后台分类新增和编辑页面,给分类添加一些字段选项来实现功能,比如分类的 SEO 标题,关键字和描述等,所以学会快速开发 WordPress 自定义分类选项是 WordPress 二次开发的必备的技能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
这次的教程会简单直接一点,原来我们都会说 WordPress 原生的开发比较麻烦,这次不再重复了,我们直接讲解怎么使用 WPJAM Basic 进行 WordPress 自定义分类选项开发,因为原生开发有点复杂,如果介绍的话,文章篇幅过长,但是我们的重点是基于 WPJAM Basic 进行二次开发,所以直接来。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
使用 WPAJAM BASIC 创建自定义选项
我们继续使用一个函数就搞定 WordPress 设置页面开发里面创建的「WPJAM SEO」插件来演示怎么创建自定义分类选项页面,今天我们会创建分类的 SEO 选项,让你输入分类的 SEO 标题,关键字和描述。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
直接上代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
add_action('plugins_loaded', function(){ // 所有插件都已经加载
if(!did_action('wpjam_loaded')){ // 确保已加载 WPJAM Basic 插件
return;
}
wpjam_register_term_option('seo', [
'title' => 'SEO设置', // 自定义选项标题
'list_table' => true, // 后台分类列表页也支持设置
'page_title' => 'SEO设置', // 分类列表点击弹窗的标题
'submit_text' => '设置', // 弹窗的提交按钮名称
'fields' => [
'seo_title' => ['title'=>'SEO标题', 'type'=>'text', 'class'=>'large-text', 'placeholder'=>'不填则使用标题'],
'seo_description' => ['title'=>'SEO描述', 'type'=>'textarea'],
'seo_keywords' => ['title'=>'SEO关键字','type'=>'text', 'class'=>'large-text']
]
]);
});
代码都加了注释,懂的同学应该已经知道怎么做了,还有些困惑的同学,请听我解释 ?,首先还是先确保 WPJAM Basic 已加载,这方面一个函数就搞定 WordPress 设置页面开发中已经做了详细的介绍,这里就不再赘述了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
wpjam_register_term_option
这个就是标题中说的那个牛逼的函数,是的,我们只用了 wpjam_register_term_option
这一个函数就在 WordPress 后台搞定自定义分类选项:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
title
:这个参数定义自定义选项的标题。list_table
:定义后台分类列表页是否也支持通过弹窗设置fields
:那么这个自定义选项框有哪些字段呢?就是这个参数决定的,这里定义了两个输入框和一个文本框。
和自定义文章选项不同,分类新增和编辑页面没有 meta_box 的,字段是直接展示的,所以上面代码就是在分类列表和编辑页新增三个字段,分别是「SEO标题」,「SEO描述」和「SEO关键字」,我截图一下新增页面的字段:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
然后在分类列表页右侧的分类列表也可以进行设置操作:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
点击上面「SEO设置」按钮也可以进行同样的设置:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
在页面上使用自定义分类选项
创建了选项之后,那么我们就要把他们用起来,WordPress 提供了获取分类自定义字段的函数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
get_term_meta($term_id, $met_key, $single); // 获取分类自定义字段
首先把在分类/标签/自定义分类页将页面标题改成上面定义的「SEO标题」:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
add_filter('document_title', function($title){
if((is_category() || is_tag() || is_tax()) && get_query_var('paged') < 2){
return get_term_meta(get_queried_object_id(), 'seo_title', true) ?: $title;
}
return $title;
});
然后把「SEO描述」和「SEO关键字」输出到分类/标签/自定义分类页的 head 中:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
add_action('wp_head', function(){
if((is_category() || is_tag() || is_tax()) && get_query_var('paged') < 2){ // 分类/标签/自定义分类页并且第一页
foreach(['description', 'keywords'] as $type){
if($meta_value = get_term_meta(get_queried_object_id(), 'seo_'.$type, true)){
echo "<meta name='{$type}' content='{$meta_value}' />\n"; // 只有设置才输出
}
}
}
});
就是这么简单,如果你是 WordPress 主题或者插件开发者,使用 WPJAM Basic 进行二次开发都是超简单的一件事情。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/23625.html