WordPress自定义帖子和固定链接

时间:2012-03-29 作者:redconservatory

我有一个名为“菜单”的自定义帖子类型,包含以下类别

热菜盒沙拉汤包装代码:

register_taxonomy(
    \'menutype\',
    array("menu"),
    array(
        "hierarchical" => true, 
        "label" => "Menu Categories", 
        "singular_label" => "Menu Category", 
        "rewrite" => array( \'slug\' => \'menu/type\', \'hierarchical\'=>\'true\'), 
        "show_ui"=>"radio", // used a plugin
        "query_var" => true
    )
);
现在,如果我想说,显示我的所有“热盒”,它去

http://www.mysite.com/menu/type/hotboxes
但如果它显示一个热盒,它只会转到

http://www.mysite.com/menu/hotbox-single-item
有没有办法重写url

http://www.mysite.com/menu/type/hotbox/hotbox-single-item
我想要的理想格式是:

http://www.mysite.com/custom_post_type/custom_taxonomy/post_name
编辑:我设法获得了链接looking 就像我想做的那样:

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

        $post = get_post($id);

        if ( $post->post_type != \'menu\')
        {
            return $post_link;  
        }

        if( $terms = wp_get_object_terms( $post->ID, \'menutype\' ) ) {
            $custom_taxonomy = $terms[0]->slug;
            $post_link = str_replace(\'menu\', \'menu/\'.$custom_taxonomy, $post_link);
        }


        return $post_link;

    }
    add_filter( \'post_type_link\', \'menu_post_link\', 10, 2 );
注意:我的自定义帖子类型称为“menu”,我的自定义分类法称为“menutype”。

现在,这将创建我想要的永久链接:

http://www.mysite.com/custom_post_type/custom_taxonomy/post_name

但是,即使在刷新“我的重写规则”(Settings>Permalinks>save)之后,它也会生成404错误

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

尝试类似的操作:

function custom_rewrite( $wp_rewrite ) {
    $feed_rules = array(
        \'(.+)/([^/]+)(/[0-9]+)?/?$\'    =>  \'index.php?post_type=\'.$wp_rewrite->preg_index(1).\'&custom_taxonomy=\'. $wp_rewrite->preg_index(2).\'&post_name=\'. $wp_rewrite->preg_index(3)
    );

    $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}
// refresh/flush permalinks in the dashboard if this is changed in any way
add_filter( \'generate_rewrite_rules\', \'custom_rewrite\' );
您可能需要修改regex,因为regex不是我的强项之一,您需要在URL中替换出您的分类名称。您可能还需要对自定义帖子类型进行硬编码,并相应地调整其余部分以避免冲突。

结束

相关推荐

All in One Seo and Permalinks

我正在使用多功能搜索引擎优化,对于帖子标题格式选项,我将其作为:%post\\u标题%kewyord1关键字2等关键字1,关键字2是我为我的网站选择的关键字此外,在Permalinks中,我将其命名为/%postname%/,以便帖子名称显示在短链接/url中因此,使用这些配置,如果我在标题中使用“Books”进行发布,它将如下所示:Books关键字1关键字2等但该帖子的短链接或实际url如下所示:www.mydomain。com/书籍它不包含我在搜索引擎优化中指定的所有关键字我试着将Permalink更