2011-09-02 114 views
3

所以我有一个WordPress引擎的网站。我想让帖子看起来像http://website.com/blog/post-name/http://website.com/blog/categ-name/post-name/。但其他一切看起来像http://website.com/page-name/。只想为所有帖子添加前缀“博客”到网址,而不是网页。我的固定链接设置是/%postname%/。如果我将/博客/%postname%/我将在我的网站的每个URL中都有'博客'前缀:( 我无法在WordPress管理后端找到解决方案,并且我没有找到任何可接受的插件。帮助表示赞赏,感谢帖子的URL前缀WordPress

回答

5

为什么不创建一个名为 “博客”,并使用固定链接结构/%类别类别%/%postname%/

+0

谢谢,我也想过这种方式。但我有几个类别,我不想在猫列表中有'博客'。当然,我可以用一些黑客来隐藏'博客'猫。但也许有更优雅的解决方案。 –

+0

嗨,你有没有找到解决方案,我也有同样的问题 – Edesa

0

我这样做:? http://www.designnode.co.uk/blog/prefix-wordpress-post-url-slug/

add_action('init', 'redefine_post', 1); 
function redefine_post() { 
    register_post_type('post', array(
     'labels' => array(
      'name_admin_bar' => _x('Post', 'add new on admin bar'), 
     ), 
     'public' => true, 
     '_builtin' => false, 
     '_edit_link' => 'post.php?post=%d', 
     'capability_type' => 'post', 
     'map_meta_cap' => true, 
     'hierarchical' => false, 
     'rewrite' => array('slug' => 'blog'), 
     'query_var' => false, 
     'has_archive' => true, 
     'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'), 
    )); 
} 

它涉及到创建一个自定义的帖子类型(这有点烦人),但它覆盖并使用后。

我希望有一个更好的方法来做到这一点! (否则是你得到/博客/前面的一切,如果你只是改变永久链接)。

2

1)在你function.php

function add_rewrite_rules($wp_rewrite) 
{ 
    $new_rules = array(
     'blog/(.+?)/?$' => 'index.php?post_type=post&name='. $wp_rewrite->preg_index(1), 
    ); 

    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; 
} 
add_action('generate_rewrite_rules', 'add_rewrite_rules'); 

function change_blog_links($post_link, $id=0){ 

    $post = get_post($id); 

    if(is_object($post) && $post->post_type == 'post'){ 
     return home_url('/blog/'. $post->post_name.'/'); 
    } 

    return $post_link; 
} 
add_filter('post_link', 'change_blog_links', 1, 3); 

2)末尾添加此重写进入设置>永久链接,然后点击Save Changes