Custom post type URL

时间:2015-08-13 作者:edonbajrami

我有一个名为“新闻”的页面,我为新闻创建了一个自定义的帖子类型。在“新闻”页面中,我需要显示所有新闻自定义帖子,它们需要可点击。“新闻”页面url为http://example.com/media/lajmet. 当我点击新闻时,它会出现在url上”http://example.com/news/article1“.如何在自定义帖子上重写URL单击进入”http://example.com/media/lajmet/article1“?我也在使用polylang语言。

以下是我为新闻创建自定义帖子类型的方法:

function news_custom_post() {
    $labels = array(
        \'name\'               => _x( \'News\', \'post type general name\' ),
        \'singular_name\'      => _x( \'News\', \'post type singular name\' ),
        \'add_new\'            => _x( \'Add new\', \'news\' ),
        \'add_new_item\'       => __( \'Add new news\' ),
        \'edit_item\'          => __( \'Edit news\' ),
        \'new_item\'           => __( \'New news\' ),
        \'all_items\'          => __( \'All news\' ),
        \'view_item\'          => __( \'View news\' ),
        \'search_items\'       => __( \'Search news\' ),
        \'not_found\'          => __( \'No news found\' ),
        \'not_found_in_trash\' => __( \'No news found in the Trash\' ),
        \'parent_item_colon\'  => \'\',
        \'menu_name\'          => \'News\'
    );
    $args = array(
        \'labels\'        => $labels,
        \'description\'   => \'Holds our media news data\',
        \'public\'        => true,
        \'menu_position\' => 6,
        \'supports\'      => array( \'title\', \'editor\', \'page-attributes\', \'thumbnail\'),
        \'has_archive\'   => true
    );
    register_post_type( \'news\', $args );
}
add_action( \'init\', \'news_custom_post\' );

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

您可以设置rewrite slug 当你register your post type:

$args = array(
    \'rewrite\' => array( \'slug\' => \'media/lajmet\' )
    // other args...
);

SO网友:Kevin Fodness

你可以做到,但这并不简单。在WordPress中注册自定义帖子类型时,的第一个参数register_post_type 是你用的鼻涕虫。此段塞只能用于一个URL段。如果您将其更改为media 那么你所有的文章都会/media/article-slug-here.

如果要将其嵌套得更深,则必须注册重写规则以侦听额外的段:https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

您的add\\u rewrite\\u规则调用可能采用类似以下格式:

add_rewrite_rule(\'^media/lajmet/(.*+)/?\', \'index.php?post_type=news&p=$matches[1]\', \'top\');

结束

相关推荐

Rewriting WordPress URLs

我有一个插件,它通过一个短代码通过GET请求获取输入。快捷码放在带有地址/搜索的页面上,用于执行此特定搜索的查询是/搜索/?VenuName=。这很好用。但是,我需要重写它,以便当用户转到/地点/时,它加载上述搜索。This gist 包含我的原始代码(失败),以及Pippin关于我应该在哪里的建议(也失败)。我已经尝试了我能想到的一切,它总是导致404错误,或者重定向到主页(这毫无意义)。我还尝试了通过Rewrite plugin, 结果是一样的。如果您能提供任何帮助,我们将不胜感激。不幸的是,我在这个