海天无影Blog

给wordpress的栏目添加keywords字段

/ 5208阅 / 0评 / 0

wordpress胜在精简强大,所以很多有利于SEO的功能却没有,比如说给分类添加keywords,除了在主题里手动判断各分类,然后手动写死外。这里给大家介绍一个新方法,便于修改。就是给wordpress的栏目增加keywords字段,方便在后台直接设置修改。下面直接放出代码,直接添加在functions.php文件即可。

function add_cat_field(){
echo '<tr><th scope="row"><label for="keywords">keywords</label></th><td><input name="cat_keywords" id="cat_keywords" value="" size="40" aria-required="true" type="text"><p>本栏目的keywords</p></td></tr>';
}
add_action('category_add_form_fields','add_cat_field', 10, 2);

//分类再编辑需要接受参数
function edit_cat_field($tag){
echo '<tr><th scope="row"><label for="keywords">keywords</label></th><td><input name="cat_keywords" id="cat_keywords" value="'.get_term_meta($tag->term_id, 'keywords', true).'" size="40" aria-required="true" type="text"><p>本栏目的keywords</p></td></tr>';
}
add_action('category_edit_form_fields','edit_cat_field', 10, 2);

/**************保存数据接受的参数为分类ID*****************/
function taxonomy_metadata($term_id){
if(isset($_POST['cat_keywords'])){
//判断权限--可改
if(!current_user_can('manage_categories')){
return $term_id ;
}

$data = htmlspecialchars($_POST['cat_keywords'], ENT_QUOTES,"UTF-8");

//注意get_term_meta,add_term_meta,update_term_meta函数非默认函数,需要单独添加
if(get_term_meta($term_id , 'keywords') == ""){
//如果数据库中没有就新添加
add_term_meta($term_id , 'keywords', $data, true);
}elseif($data != get_term_meta($term_id , 'keywords', true)){
//如果更改了就更新
update_term_meta($term_id , 'keywords', $data);
}

if($data == ""){
//如果提交的数据为空就删除原来的值
delete_term_meta($term_id , 'keywords', get_term_meta($term_id , 'keywords', true));
}
}
}
/*******虽然要两个钩子,但是我们可以两个钩子使用同一个函数********/
add_action('created_category', 'taxonomy_metadata', 10, 1);
add_action('edited_category','taxonomy_metadata', 10, 1);

评论已关闭。