我正在尝试创建如下链接:
site.com/article-sample-post
因为“article”是一个固定前缀,“sample post”是post slug。。但该前缀会影响类别链接结构,使其:
site.com/article-category/sample-cat
这是不需要的!我的问题是:是否有任何简单的黑客或插件可以让我制作这样的永久链接:
site.com/article-sample-post
site.com/sample-cat
谢谢你,我正在尝试创建如下链接:
site.com/article-sample-post
因为“article”是一个固定前缀,“sample post”是post slug。。但该前缀会影响类别链接结构,使其:
site.com/article-category/sample-cat
这是不需要的!我的问题是:是否有任何简单的黑客或插件可以让我制作这样的永久链接:
site.com/article-sample-post
site.com/sample-cat
谢谢你,如果要删除类别库/category/
, 您可以安装WP no category base plugin 这将为类别添加一组新的重写规则。这样做的副作用是,您可以将post permalinks设置为/article-%postname%/
而且它将不再影响类别permalinks。然而,它仍然会影响标签。
您的另一个选择,或者与上述插件结合使用,是过滤post_link
添加article-
前缀,然后修改传入请求以删除该前缀,以便WordPress可以找到帖子:
add_filter( \'post_link\', \'wpa68069_post_prefix\' );
function wpa68069_post_prefix( $url ) {
$prefix = \'article-\';
$parts = explode( \'/\', $url );
return home_url( \'/\' ) . $prefix . $parts[ count( $parts ) - 2 ] . \'/\';
}
add_action( \'parse_request\', \'wpa68069_parse_request\' );
function wpa68069_parse_request( $request ){
if( !isset( $request->query_vars[\'name\'] ) )
return $request;
if( false !== strpos( $request->query_vars[\'name\'], \'article-\' ) )
$request->query_vars[\'name\'] = substr( $request->query_vars[\'name\'], 8 );
return $request;
}
此简单函数添加/articles
在每个帖子链接之前,例如。http://www.example.com/my-new-one-post/
将更改为http://www.example.com/articles/my-new-one-post/
我已将permalink结构设置为/%postname%/
. 链接,如http://www.example.com/new-article
add_filter(
\'post_link\', function ($url) {
$parts = parse_url($url);
if ($parts[\'path\']) $parts[\'path\'] = \'/articles\' . $parts[\'path\'];
$parts[\'scheme\'] .= \'://\';
if (isset($parts[\'query\'])) $parts[\'query\'] = \'?\' . $parts[\'query\'];
if (isset($parts[\'port\'])) $parts[\'port\'] = \':\' . $parts[\'port\'];
if (isset($parts[\'fragment\'])) $parts[\'fragment\'] = \'#\' . $parts[\'fragment\'];
return implode(\'\', $parts);
}
);
此解决方案的优点是可以预览链接和短链接(http://www.example.com/articles/?p=3677)也很有效。我想知道我是否可以为wp\\U list\\U类别分页?我尝试了paginate\\u链接,但运气不好。还是有好的解决方法?非常感谢。<?php $orderby = \'name\'; $show_count = 0; $pad_counts = 0; $hierarchical = 1; $taxonomy = \'categories\'; $title = \'\'; $exclude = \