一个函数就搞定 WordPress 后台文章列表自定义栏目开发(不用插件给wordpress分类添加标题,关键词等SEO信息)
文章目录
一个函数就搞定 WordPress 后台文章列表自定义栏目开发
上一篇我们介绍了一个函数就搞定 WordPress 自定义文章选项开发,今天继续,我们今天给大家讲解如何使用一个函数就搞定 WordPress 后台文章列表自定义栏目开发,也是一个函数,非常方便快速。
WordPress 后台文章列表自定义栏目是指在 WordPress 后台文章列表页面,给文章列表表哥添加一些栏目来显示数据,比如文章的浏览数,是否设置了 SEO 信息等,所以学会快速开发 WordPress 后台文章列表自定义栏目开发是 WordPress 二次开发的必备的技能。
WordPress后台文章列表自定义栏目开发有点烦
如果我们使⽤ WordPress 原⽣的代码给后台⽂章列表页⾯添加一列的话,需要使用两个接口:
使用manage_{$post_type}_posts_columns接口添加栏目表头
add_filter('manage_post_posts_columns', function($columns){
$columns['views'] = '浏览';
return $columns;
});
通过manage_{$post_type}_posts_custom_column 接口显示栏目数据
add_action('manage_post_posts_custom_column' , function ($column, $post_id){
if($column == 'views'){
echo (int)get_post_meta($post_id , 'views' , true);
}
}, 10, 2 );
相对前面两个的开发算简单,但是需要知道这两个接口。
使用 WPAJAM BASIC 创建自定义文章列表栏目
如果和上面一样,需压增加一列来显示文章的浏览数,这种只是简单从 post meta 种去取数据,WPJAM Basic 只需要一行就搞定:
wpjam_register_posts_column('views', ['title'=> '浏览']);
如果复杂一点的例子,获取的数据需要自己处理一下怎么处理呢?
我们继续使用一个函数就搞定 WordPress 设置页面开发里面创建的「WPJAM SEO」插件来演示,怎么在文章栏目显示设置的 SEO 标题,关键字和描述。
直接上代码:
add_action('plugins_loaded', function(){ // 所有插件都已经加载
if(!did_action('wpjam_loaded')){ // 确保已加载 WPJAM Basic 插件
return;
}
wpjam_register_posts_column('seo', [
'title' => 'SEO设置',
'column_callback' => function($post_id){
$value = '';
foreach(['title'=>'SEO标题', 'description'=>'SEO描述', 'keywords'=>'SEO关键字'] as $key => $title){
$value .= '<strong>'.$title.'</strong>:';
if($seo_value = get_post_meta(get_the_ID(), 'seo_'.$key, true)){
$value .= "\\n".$seo_value."\\n\\n";
}else{
$value .= "未设置\\n";
}
}
return wpautop($value);
}
]);
});
首先还是先确保 WPJAM Basic 已加载,这方面一个函数就搞定 WordPress 设置页面开发中已经做了详细的介绍,这里就不再赘述了。
wpjam_register_posts_column
这个就是标题中说的那个牛逼的函数,是的,我们只用了 wpjam_register_posts_column 这一个函数就在 WordPress 后台搞定自定义文章列表栏目:
- title:这个参数定义自定义文章列表栏目的表头。
- column_callback:定义怎么获取数据,如果不定义这个参数,则直接从 post meta 获取数据。。
所以上面代码就是在文章列表页增加「SEO设置」栏目:
就是这么简单,如果你是 WordPress 主题或者插件开发者,使用 WPJAM Basic 进行二次开发都是超简单的一件事情,我会把二次开发做成一个专题,下篇教程预告:一个函数搞定 WordPress 自定义分类选项开发。
不用插件给wordpress分类添加标题,关键词等SEO信息
做过seo的都知道,标题和关键词,描述是非常重要的,wordpress网站默认分类目录是没有这个seo的功能的。
我们可以通过安装seo插件来解决,但是seo插件功能比较多,设置繁琐,今天给大家分享一个非插件实现分类目录seo功能的方法。
首先,我们需要新增一个文件放到主题文件里面:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php add_action('edit_category_form_fields','category_function'); functioncategory_function(){ if(isset($_GET['action'])&&$_GET['action']=='edit')$value=get_option('cat_set_'.$_GET['tag_ID']); $title='cat_title'; $keywords='cat_keywords'; $description='cat_description'; ?> <tableclass="form-table"></table> <h2>自定义SEO信息</h2> <tableclass="form-table"> <tbody> <trclass="form-field"> <thscope="row"valign="top"><labelfor="<?phpecho$title?>">标题</label></th> <td><inputname="<?phpecho$title?>"id="<?phpecho$title?>"type="text"value="<?phpechoesc_attr(stripslashes($value['title'])); ?>"><pclass="description">默认调用分类名称作为Head中Title信息。</p> </td> </tr> <trclass="form-field"> <thscope="row"valign="top"><labelfor="<?phpecho$keywords;?>">关键词</label></th> <td><inputname="<?phpecho$keywords;?>"id="<?phpecho$keywords;?>"type="text"value="<?phpecho$value['keywords']; ?>"><pclass="description">多个关键词用小写逗号“,”分隔开;默认调用分类名称作为Head中KeyWords信息。</p> </td> </tr> <trclass="form-field"> <thscope="row"valign="top"><labelfor="<?phpecho$description;?>">描述</label></th> <td><textareaname="<?phpecho$description;?>"id="<?phpecho$description; ?>"rows="3"cols="30"><?phpechostripslashes($value['description']);?></textarea><pclass="description">若未设置,将显示为“关于‘某某’分类下的所有文章。”作为Head中Description信息。</p> </td> </tr> </tbody> </table> <?php } add_action('edit_category','save_category_function'); functionsave_category_function(){ if(isset($_POST['action'])&&isset($_POST['taxonomy'])&&$_POST['action']=='editedtag'&&$_POST['taxonomy']=='category'){ update_option('cat_set_'.$_POST['tag_ID'],array('title'=>$_POST['cat_title'],'description'=>$_POST['cat_description'],'keywords'=>$_POST['cat_keywords'],'template'=>$_POST['cat_template'],'orderby'=>$_POST['cat_orderby'],'per_page'=>$_POST['cat_per_page'],)); } }; ?> |
然后,在主题函数function.php中引用
1 |
include("seocategory.php"); |
最后就是前台功能的调用了。
标题调用代码:
1 2 3 4 5 6 7 8 9 |
if(is_category()){ $cat_id=get_query_var('cat'); $val=get_option("cat_set_$cat_id"); if(!Empty($val)&&$val['title']!=''){ $title=$val['title'].'-'.get_bloginfo('name'); }else{ $title=single_cat_title('',false).'-'.get_bloginfo('name'); } } |
关键词获取:
1 2 3 4 5 6 7 8 9 |
if(is_category()){ $cat_id=get_query_var('cat'); $val=get_option("cat_set_$cat_id"); if(!Empty($val)&&$val['keywords']!=''){ $keywords=$val['keywords']; }else{ $keywords=single_cat_title('',false); } } |
描述获取:
1 2 3 4 5 6 7 8 9 |
if(is_category()){ $cat_id=get_query_var('cat'); $val=get_option("cat_set_$cat_id"); if(!Empty($val)&&$val['description']!=''){ $description=$val['description']; }else{ $description=$blog_name."'".single_cat_title('',false)."'"; } } |
上面是分别调用的代码,如果要一起输出可以用下面代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
//functions.php文件添加到wp_head(); //标题 functionpage_title(){ global$page,$paged; $title=''; if(get_option('themes_fo2_seo_ht')&&get_option('themes_fo2_seo_on')&&(is_home()||is_front_page())){ $title=get_option('themes_fo2_seo_ht'); }elseif(is_category()){ $cat_id=get_query_var('cat'); $val=get_option("cat_set_$cat_id"); if(!Empty($val)&&$val['title']!=''){ $title=$val['title'].'-'.get_bloginfo('name'); }else{ $title=single_cat_title('',false).'-'.get_bloginfo('name'); } }else{ $title=trim(wp_title('',false)).'-'.get_bloginfo('name'); } //Addapagenumberifnecessary: if($paged>=2||$page>=2) $title.='-'.sprintf(__('Page%s','frontopen'),max($paged,$page)); echo""; } add_action('wp_head','page_title'); //关键字 functionpage_keywords(){ global$s,$post; $keywords=''; if(is_single()){ if(get_the_tags($post->ID)){ foreach(get_the_tags($post->ID)as$key=>$tag){ $keywordsArr[$key]=$tag->name; } $keywords=implode(',',$keywordsArr); }else{ $keywords=trim(wp_title('',false)); } //foreach(get_the_category($post->ID)as$category)$keywords.=$category->cat_name.','; //$keywords=substr_replace($keywords,'',-2); }elseif(is_home()){$keywords=get_option('themes_fo2_seo_hk'); }elseif(is_tag()){$keywords=single_tag_title('',false); //}elseif(is_category()){$keywords=single_cat_title('',false); }elseif(is_category()){ $cat_id=get_query_var('cat'); $val=get_option("cat_set_$cat_id"); if(!Empty($val)&&$val['keywords']!=''){ $keywords=$val['keywords']; }else{ $keywords=single_cat_title('',false); } }elseif(is_search()){$keywords=esc_html($s,1); }else{$keywords=trim(wp_title('',false)); } if($keywords){ echo"\\n"; } } add_action('wp_head','page_keywords'); //网站描述 functionpage_description(){ global$s,$post; $description=''; $blog_name=get_bloginfo('name'); if(is_singular()){ if(!empty($post->post_excerpt)){ $text=$post->post_excerpt; }else{ $text=$post->post_content; } $description=trim(str_replace(array("\\r\\n","\\r","\\n"," ",""),"",str_replace("\\"","'",strip_tags($text)))); if(!($description))$description=$blog_name."-".trim(wp_title('',false)); }elseif(is_home()){$description=get_option('themes_fo2_seo_hd'); }elseif(is_tag()){$description=$blog_name."'".single_tag_title('',false)."'"; //}elseif(is_category()){$description=$blog_name."'".single_cat_title('',false)."'"; }elseif(is_category()){ $cat_id=get_query_var('cat'); $val=get_option("cat_set_$cat_id"); if(!Empty($val)&&$val['description']!=''){ $description=$val['description']; }else{ $description=$blog_name."'".single_cat_title('',false)."'"; } }elseif(is_archive()){$description=$blog_name."'".trim(wp_title('',false))."'"; }elseif(is_search()){$description=$blog_name.":'".esc_html($s,1)."'的搜索結果"; }else{$description=$blog_name."'".trim(wp_title('',false))."'"; } $description=mb_substr($description,0,220,'utf-8'); echo"\\n"; } add_action('wp_head','page_description'); |
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » 一个函数就搞定 WordPress 后台文章列表自定义栏目开发(不用插件给wordpress分类添加标题,关键词等SEO信息)