仅适用于默认帖子的自定义固定链接结构

时间:2012-01-04 作者:c10b10

有人知道如何只修改单个贴子页面的url结构吗?

当我转到帖子页面时,url应该如下所示:示例。com/xxx/my post。所有其他url(单篇文章页面除外)的url中不应包含“xxx”。

定制permalink设置也会在分类法和类别之前添加xxx,这样就无法满足我的需要。

本质上,我希望所有“post”和“events”URL在结构中共同包含一个额外的“xxx”段。

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

解决方案是在Wordpress之后重新注册默认的post类型,并添加一个重写段塞。此外,需要将\\u builtin参数设置为false。

add_action( \'init\', \'my_new_default_post_type\', 1 );
function my_new_default_post_type() {

    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\' => \'post\' ),
        \'query_var\' => false,
        \'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'trackbacks\', \'custom-fields\', \'comments\', \'revisions\', \'post-formats\' ),
    ) );
}

SO网友:Milo

另一种没有注册新帖子类型潜在副作用的方法是修改重写规则以删除永久链接前端。

function wpa37911_permastructs(){
    global $wp_rewrite;
    $wp_rewrite->extra_permastructs[\'category\'][\'struct\'] = \'/category/%category%\';
    $wp_rewrite->extra_permastructs[\'post_tag\'][\'struct\'] = \'/tag/%post_tag%\';
}
add_action( \'init\', \'wpa37911_permastructs\' );

结束

相关推荐

自定义POST类型和Have_Posts()返回空结果

我对have\\u posts()感到非常困惑。它返回一个空结果,即使我有一篇文章与查询匹配。下面的代码用于一个小部件,该小部件应该只显示一篇文章(如果存在的话)。我使用wordpress 3.3。。。$singleargs = array(\'p\' => 2040, \'post_type\' => \'event\', \'post_status\' => array(\'any\'), \'posts_per_page\' => 1); $singlequery =