無需任何插件實(shí)現(xiàn)WordPress去掉鏈接中的category并最簡化分類目錄URL

[重要通告]如您遇疑難雜癥,本站支持知識付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!

對于去掉category的方法,網(wǎng)上有很多種方式方法,眾說飛云,本站就把WordPress分類目錄URL最簡化 去掉鏈接中的category 方法咱這里就說兩種;

登錄Wordpress后臺,打開固定鏈接/永久鏈接設(shè)置項(xiàng)。在“可選設(shè)置”里的“分類地址前綴”里輸入半角字符:“.”,如下圖所示;保存后即可去掉分類前綴category。

優(yōu)點(diǎn):設(shè)置簡單,適用于初建成的博客,或準(zhǔn)備打算使用固定鏈接 /永久鏈接的博客。用不著修改代碼,升級之時沒有顧慮;用不著插件,不會增加運(yùn)行負(fù)擔(dān)。

缺點(diǎn):原鏈接無法打開,出現(xiàn)404錯誤。開啟重寫后,這樣設(shè)置會導(dǎo)致分類和標(biāo)簽下找不到對應(yīng)文章;

第二種去掉分類鏈接中category方式方法:

復(fù)制以下代碼,粘貼到你網(wǎng)站嗎模板下的 functions.php 文件中即可:

//去除分類標(biāo)志代碼
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');
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;
}
// 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;
}

注意代碼一定放在 <?php ? ? ? ? ??> 里面

原理介紹:

這段去掉分類鏈接中category的代碼,就是WP No category Base?插件的主體代碼,我們可以不安裝這個插件,直接通過主題函數(shù)來解決這個問題。

注意事項(xiàng):

不管安裝插件還是用代碼可能會都會出現(xiàn)404頁面,即%post_id%.html(固定鏈接)的偽靜態(tài)會失效!

解決方法:登錄后臺→設(shè)置→固定鏈接設(shè)置頁面,隨意改一下固定鏈接格式,然后再改回自己正常用的偽靜態(tài)規(guī)則即可解決此問題,不行就反復(fù)多改幾次操作哦;

延續(xù):如按照以上還會出現(xiàn)404,建議把所有緩存清除后再嘗試,基本就沒啥問題。

祝各位看官好運(yùn)!

 

問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責(zé)聲明》全部內(nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。 敬請諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » 無需任何插件實(shí)現(xiàn)WordPress去掉鏈接中的category并最簡化分類目錄URL

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開發(fā)與維護(hù);網(wǎng)站開發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情