特定类别的自定义固定链接

时间:2017-05-16 作者:mdailey77

我正在尝试为自定义帖子类型创建一个自定义永久链接,并将其仅应用于特定类别。例如,我想将此URL更改为:http://www.example.com/events/event-namehttp://www.example.com/webinars/event-name.

这是迄今为止我所掌握的代码,但它不起作用:

function change_webinar_links($permalink) {
    global $post;
    if(get_post_type() == \'tribe_events\' && has_category(\'webinar\', $post->ID)) {
        $permalink = trailingslashit( home_url(\'/webinars/\' . $post->post_name  ) );
    }
    return $permalink;
}
add_action( \'init\', \'webinar_rewrite_rule\');
function webinar_rewrite_rule() {
    global $post;
    if ( has_category(\'webinar\', $post->ID) ) {
        add_rewrite_rule( \'^webinars/([^/]+)/?\', \'index.php?tribe_events=$matches[1]&post_type=tribe_events&name=$matches[1]\', \'top\' );
    }
}

1 个回复
SO网友:mdailey77

我在WordPress论坛上得到了答案。下面是那些希望做类似事情的人的工作代码:

add_filter( \'post_type_link\', \'change_webinar_links\', 10, 2 ); function change_webinar_links( $link, $post) { if ( $post->post_type == \'tribe_events\' && tribe_event_in_category(\'webinar\') ) { $link = trailingslashit( home_url(\'/webinars/\' . $post->post_name ) ); } return $link; } add_action( \'init\', \'webinar_rewrite_rule\', 5); function webinar_rewrite_rule() {
add_rewrite_rule( \'^webinars/([^/]+)\', \'index.php?tribe_events=$matches[1]&post_type=tribe_events&name=$matches[1]\', \'top\' ); }

结束

相关推荐

Change Taxonomy Permalinks

我有自定义帖子,我创建了一个显示所有自定义帖子的页面。示例:www.example.com/archive-page我想知道是否可以更改与此自定义帖子相关的类别和标签的永久链接。现在我有:www.example.com/my-custom-post-type-cats/my-category-1www.example.com/my-custom-post-type-tags/my-tag-1</我想要这样的东西:www.example.com/archive-page?category=1www.e