当我们完成了wordpress主题制作开发之后,网站一般都是要用来做SEO推广的,众说周知wordpress是国外的网站管理系统,那么如果做才能让它符合国内的百度优化规则呢?
wordpress主题SEO设置主要分为以下几点:面包屑导航,侧边栏,友情链接,和关键词、标题和描述,和链接的优化。前面几点我们之前都已经讲过,可以看看之前的教程,下面我们就着重讲一下标题关键词描述(TDK)和网站内链的设置方法吧
1、网站首页分,类页单页,的标题关键词描述的添加与调用
之前在自定义字段章节中已经讲过,查看咱们之前讲过的添加自定义字段的方法在常规设置里添加 标题 关键词 描述字段 即可 地址:https://blog.csdn.net/qq_39339179/article/details/119168754
2、wordpress主题SEO链接设置
在我们做seo优化时,网站的链接规范,一般命名规范及设置规则:URL要简短、URL静态化、层次越少越好、URL有含合理关键词,英文单词和拼音、避免使用中文链接。
a、固定链接设置
由于动态链接的SEO最不好,所以一定要修改固定链接方式
b、去除分类链接前的 /category/ 层级
wordpress默认的分类链接前都有一个/category/ 层级这样对 seo优化并不好,我们需要把他去掉
该插件将从您的类别永久链接中完全删除强制性的“/category/”该插件不需要设置或修改核心 wordpress 文件,安装后可以直接使用无需其他设置
方法二、Functions.php 文件中添加如下代码
// 去除 /category/ register_activation_hook(__FILE__, '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'); function no_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 base add_action('init', 'no_category_base_permastruct'); function no_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 rules add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); function no_category_base_rewrite_rules($category_rewrite) { //var_dump($category_rewrite); // For Debugging $category_rewrite = array(); $categories = get_categories(array('hide_empty' => false)); foreach ($categories as $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 Base global $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 Debugging return $category_rewrite; } // For Debugging //add_filter('rewrite_rules_array', 'no_category_base_rewrite_rules_array'); //function no_category_base_rewrite_rules_array($category_rewrite) { // var_dump($category_rewrite); // For Debugging //} // Add 'category_redirect' query variable add_filter('query_vars', 'no_category_base_query_vars'); function no_category_base_query_vars($public_query_vars) { $public_query_vars[] = 'category_redirect'; return $public_query_vars; } // Redirect if 'category_redirect' is set add_filter('request', 'no_category_base_request'); function no_category_base_request($query_vars) { //print_r($query_vars); // For Debugging if (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; }
c、tag标签链接设置
WordPress标签链接默认是中文,这样对seo很不优化,虽然可以自己修改别名,比如拼音或者英文,但是如果标签比较多时修改起来就比较麻烦了
还有就是同音词的时候不好区分,个人觉得以ID 方式显示连接最好,那么该如何实现呢?
1、使用 Auto Tag Slug插件 把汉字链接转换成拼音
2、将以下代码加在主题目录的 functions.php 中即可实现
/* 标签以id方式展示*/ add_action('generate_rewrite_rules','tag_rewrite_rules'); add_filter('term_link','tag_term_link',10,3); add_action('query_vars', 'tag_query_vars'); function tag_rewrite_rules($wp_rewrite){ $new_rules = array( 'tag/(\d+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]', 'tag/(\d+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]', 'tag/(\d+)/embed/?$' => 'index.php?tag_id=$matches[1]&embed=true', 'tag/(\d+)/page/(\d+)/?$' => 'index.php?tag_id=$matches[1]&paged=$matches[2]', 'tag/(\d+)/?$' => 'index.php?tag_id=$matches[1]', ); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } function tag_term_link($link,$term,$taxonomy){ if($taxonomy=='post_tag'){ return home_url('/tag/'.$term->term_id); } return $link; } function tag_query_vars($public_query_vars){ $public_query_vars[] = 'tag_id'; return $public_query_vars; }
原文链接:https://blog.csdn.net/qq_39339179/article/details/119177706?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171853162716800188552062%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171853162716800188552062&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-16-119177706-null-null.nonecase&utm_term=wordpress%E4%B8%BB%E9%A2%98