3 回答

TA貢獻1876條經(jīng)驗 獲得超5個贊
這是您可以從術(shù)語 URL中刪除自定義分類 slug(? job ?)的方法:
這是代碼的主要部分,您可以將其插入到您當(dāng)前的主題functions.php中,只是不要忘記將每個函數(shù)中的分類名稱/slugs 更改為您自己的值。
add_filter('request', 'rudr_change_term_request', 1, 1 );
function rudr_change_term_request($query){
$tax_name = 'product_cat'; // specify you taxonomy name here, it can be also 'category' or 'post_tag'
// Request for child terms differs, we should make an additional check
if( $query['attachment'] ) :
$include_children = true;
$name = $query['attachment'];
else:
$include_children = false;
$name = $query['name'];
endif;
$term = get_term_by('slug', $name, $tax_name); // get the current term to make sure it exists
if (isset($name) && $term && !is_wp_error($term)): // check it here
if( $include_children ) {
unset($query['attachment']);
$parent = $term->parent;
while( $parent ) {
$parent_term = get_term( $parent, $tax_name);
$name = $parent_term->slug . '/' . $name;
$parent = $parent_term->parent;
}
} else {
unset($query['name']);
}
switch( $tax_name ):
case 'category':{
$query['category_name'] = $name; // for categories
break;
}
case 'post_tag':{
$query['tag'] = $name; // for post tags
break;
}
default:{
$query[$tax_name] = $name; // for another taxonomies
break;
}
endswitch;
endif;
return $query;
}
add_filter( 'term_link', 'rudr_term_permalink', 10, 3 );
function rudr_term_permalink( $url, $term, $taxonomy ){
$taxonomy_name = 'product_cat'; // your taxonomy name here
$taxonomy_slug = 'product_cat'; // the taxonomy slug can be different with the taxonomy name (like 'post_tag' and 'tag' )
// exit the function if taxonomy slug is not in URL
if ( strpos($url, $taxonomy_slug) === FALSE || $taxonomy != $taxonomy_name ) return $url;
$url = str_replace('/' . $taxonomy_slug, '', $url);
return $url;
}
并且不要忘記舊 URL 的 301 重定向,這是您的網(wǎng)站 SEO 所必需的。
add_action('template_redirect', 'rudr_old_term_redirect');
function rudr_old_term_redirect() {
$taxonomy_name = 'product_cat';
$taxonomy_slug = 'product_cat';
// exit the redirect function if taxonomy slug is not in URL
if( strpos( $_SERVER['REQUEST_URI'], $taxonomy_slug ) === FALSE)
return;
if( ( is_category() && $taxonomy_name=='category' ) || ( is_tag() && $taxonomy_name=='post_tag' ) || is_tax( $taxonomy_name ) ) :
wp_redirect( site_url( str_replace($taxonomy_slug, '', $_SERVER['REQUEST_URI']) ), 301 );
exit();
endif;
}
該代碼使用不同的分層和非分層分類法進行了測試,并且在此永久鏈接設(shè)置下效果很好。

TA貢獻1826條經(jīng)驗 獲得超6個贊
從您引用的插件作者的網(wǎng)站上,我確實注意到它說:
注意:從 WP Job Manager 版本 1.27.0 開始,可以在“可選”部分下的“設(shè)置”->“永久鏈接”中更改作業(yè)永久鏈接。
對于以前版本的 WP Job Manager,請參閱下面的指南。謝謝!
它列出了七個不同的代碼示例。
在我自己玩這個時,我無法讓任何代碼示例工作(它們以奇怪的方式中斷)。
所以我猜如果您運行的版本超過 1.27.0,那么這些代碼示例將不再有效。
我嘗試使用一些重寫規(guī)則來從 url 中刪除 /job,但問題是,關(guān)于插件的所有內(nèi)容都在尋找一個關(guān)鍵字(默認(rèn)值:job),它將通過它來搜索內(nèi)容。
如果它被刪除,WordPress 將期望該 url 必須是一個頁面??梢詫⑵鋭h除,但需要付出不小的努力。
最好的辦法是向 WP Job Manager 提交支持票,并希望他們將其放在他們的路線圖上,或者付錢給像我這樣的插件開發(fā)人員編寫必要的代碼讓你這樣做。

TA貢獻1875條經(jīng)驗 獲得超3個贊
為了從 URL 中刪除 'job/',您必須按照以下步驟操作
第 1 步:將永久鏈接設(shè)置更改為“帖子名稱” 第 2 步:將工作創(chuàng)建為“帖子”
如果您不想在 Post 中創(chuàng)建,則不能從 URL 中刪除“job/”,除非您在 URL 中添加“job-”作為前綴(https://www.jarsolutions.co.uk/job-housing-解決方案-office-2/ )
- 3 回答
- 0 關(guān)注
- 168 瀏覽
添加回答
舉報