自定义帖子类型存档页面URL指向页面固定链接

时间:2016-03-01 作者:renathy

我希望我的“自定义帖子类型存档页面”指向页面。

情况如下:

我有Page 在Wordpress中使用permalinkhttp://myurl.com/galleries. 此页面显示自定义帖子类型=vmgallery. 我有这个页面的自定义逻辑,运行良好。

从另一个视图来看,此页面的工作方式类似于“自定义帖子类型存档页面”,因为它显示给定自定义帖子类型vmgallery的所有帖子。当前,如果用户转到http://myurl.com/vmgallery/ wordpress正在加载归档页面(archive.php),我希望http://myurl.com/galleries 页面已加载。

如何做到这一点?

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

这里有多个选项。

1. Define post type archive slug on post type registration

按设置\'has_archive\' => \'galleries\' 您可以定义自定义的post类型归档slug。检查documentation.然后,您可以删除页面“库”,然后添加(&;自定义archive-post_type.php

2. Disable default archive for post type

通过设置禁用存档\'has_archive\' => false 然后将页面保留为post类型存档。

3. Redirect archive requests to your page

您可以将默认存档请求永久重定向到页面。

function archive_to_custom_archive() {
    if( is_post_type_archive( \'post_slug\' ) ) {
        wp_redirect( home_url( \'/galleries/\' ), 301 );
        exit();
    }
}
add_action( \'template_redirect\', \'archive_to_custom_archive\' );
我会说第一种方法很好!

SO网友:Gauravbhai Daxini

下面是删除存档页面链接的代码,不会影响单个帖子的url。您可以使用归档slug创建页面。

function dg_custom_post_type_args( $args, $post_type ) {
if ( $post_type === "custom post type" ) {
    $args[\'rewrite\'] = array(
    \'with_front\' => false,
    \'slug\' => \'slug here\'
  );
}

return $args;
}
add_filter( \'register_post_type_args\', \'dg_custom_post_type_args\', 20, 2 );

相关推荐