共计 3731 个字符,预计需要花费 10 分钟才能阅读完成。
对新网站来说优秀的SEO设计可以说是很重要了,不少朋友第一次用wordpress时候发现分类目录的url链接中含有category字样,不知道如何去掉;希望下面的内容能帮到大家。
方法1:修改固定链接设置
打开WP后台-设置-固定链接

自定义结构,可以依据对网站SEO设置url链接,一般推荐数字型,链接短为佳

在分类目录中 输入 英文 半角的点,即 “.” 就可以去掉分类目录url中的category字样;
但请注意,此时得需要你的网站是全新的,没有分类栏目和文章,这样才不会出错,如果已有文章,这样的方法会使你的文章和分类栏目不存在;
本人也不太推荐这种方法,这种方式你的链接形式会是 “ https://jksalang.com/./article” 只是游览器吧/.隐藏掉了,对SEO并不友好。
方法2:使用Wordpress插件
这个方法比较适合小白,只需要在 WP后台-插件-安装插件 中搜索“WP No Category Base”插件,安装并启用即可。
如安装后前台没有变化或错误;请重新保存下固定连接设置
方法3:将 WP No category Base 插件的主体代码插入到function.php中
连接网站FTP,将下列代码添加到主题目录下,“function.php”文件末尾即可。保存文件后重新保存一下固定连接设置即可
//去除分类标志代码add_action('load-themes.php','no_category_base_refresh_rules');add_action('created_category','no_category_base_refresh_rules');add_action('edited_category','no_category_base_refresh_rules');add_action('delete_category','no_category_base_refresh_rules');functionno_category_base_refresh_rules() {global$wp_rewrite;$wp_rewrite-> flush_rules();}// register_deactivation_hook(__FILE__, 'no_category_base_deactivate');// function no_category_base_deactivate() {// remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');// // We don't want to insert our custom rules again// no_category_base_refresh_rules();// }// Remove category baseadd_action('init','no_category_base_permastruct');functionno_category_base_permastruct() {global$wp_rewrite,$wp_version;if(version_compare($wp_version,'3.4','<')) {// For pre-3.4 support$wp_rewrite-> extra_permastructs['category'][0] ='%category%';}else{$wp_rewrite-> extra_permastructs['category']['struct'] ='%category%';}}// Add our custom category rewrite rulesadd_filter('category_rewrite_rules','no_category_base_rewrite_rules');functionno_category_base_rewrite_rules($category_rewrite) {//var_dump($category_rewrite); // For Debugging$category_rewrite=array();$categories= get_categories(array('hide_empty'=> false));foreach($categoriesas$category) {$category_nicename=$category-> slug;if($category-> parent ==$category-> cat_ID)// recursive recursion$category-> parent = 0;elseif($category-> parent != 0)$category_nicename= get_category_parents($category-> parent, false,'/', true) .$category_nicename;$category_rewrite['('.$category_nicename.')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] ='index.php?category_name=$matches[1]&feed=$matches[2]';$category_rewrite['('.$category_nicename.')/page/?([0-9]{1,})/?$'] ='index.php?category_name=$matches[1]&paged=$matches[2]';$category_rewrite['('.$category_nicename.')/?$'] ='index.php?category_name=$matches[1]';}// Redirect support from Old Category Baseglobal$wp_rewrite;$old_category_base= get_option('category_base') ? get_option('category_base') :'category';$old_category_base= trim($old_category_base,'/');$category_rewrite[$old_category_base.'/(.*)$'] ='index.php?category_redirect=$matches[1]';//var_dump($category_rewrite); // For Debuggingreturn$category_rewrite;}// Add 'category_redirect' query variableadd_filter('query_vars','no_category_base_query_vars');functionno_category_base_query_vars($public_query_vars) {$public_query_vars[] ='category_redirect';return$public_query_vars;}// Redirect if 'category_redirect' is setadd_filter('request','no_category_base_request');functionno_category_base_request($query_vars) {//print_r($query_vars); // For Debuggingif(isset($query_vars['category_redirect'])) {$catlink= trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'],'category');status_header(301);header("Location: $catlink");exit();}return$query_vars;}
正文完
发表至: 技术
2019-11-18