如何创建永久链接结构,该结构通过以下方式完成:
/category-name/post-name/
而不是:
/category-slug/post-name/
默认情况下,Wordpress提供
%category%
将结构标记为“类别名称的净化版本(新建/编辑类别面板上的类别slug字段)”。
如何在permalinks中使用类别名称而不是类别slug?
Note 我不需要让我的鼻涕虫与我的类别名称相等的最简单的解决方案。事实上,客户需要在编辑帖子的区域中查看:特定的非Alpahbetic顺序中的类别。因此,我成功地做到了这一点,为类别提供了一个数字作为slug,并使用以下命令在ASC模式下按slug显示类别:
add_filter( \'get_terms_args\', \'wpse_53094_sort_get_terms_args\', 10, 2 );
function wpse_53094_sort_get_terms_args( $args, $taxonomies )
{
global $pagenow;
if( !is_admin() || (\'post.php\' != $pagenow && \'post-new.php\' != $pagenow) )
return $args;
$args[\'orderby\'] = \'slug\';
$args[\'order\'] = \'ASC\';
return $args;
}
我想如果我不设法使用
t f
解决方案,我将寻找一个代码或插件,添加分类元字段和按此字段在ASC模式下的顺序。然后我将我的鼻涕虫重命名为相同的类别名称。你认为这种方法怎么样?
感谢您的评论
最合适的回答,由SO网友:tfrommen 整理而成
我没有对此进行测试,但这应该满足您的要求。将以下内容放入functions.php
:
add_filter(\'rewrite_rules_array\', \'new_category_name_rewrite_rule\');
function new_category_name_rewrite_rule($rules) {
$new_rules = array();
$categories = get_categories();
foreach ($categories as $category) {
$cat_name = preg_replace(\'#\\s+#\', \'-\', $category->name);
$new_rules[\'/\'.$category->slug.\'/\'] = \'/\'.urlencode($cat_name).\'/\';
}
return $new_rules + $rules;
}