发布固定链接而不影响类别永久链接的前缀

时间:2012-10-12 作者:johnmido

我正在尝试创建如下链接:

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
谢谢你,

2 个回复
最合适的回答,由SO网友:Milo 整理而成

如果要删除类别库/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;
}

SO网友:OzzyCzech

此简单函数添加/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_list_categories pagination

我想知道我是否可以为wp\\U list\\U类别分页?我尝试了paginate\\u链接,但运气不好。还是有好的解决方法?非常感谢。<?php $orderby = \'name\'; $show_count = 0; $pad_counts = 0; $hierarchical = 1; $taxonomy = \'categories\'; $title = \'\'; $exclude = \