【问题标题】:Customization of URL's of theme post types自定义主题帖子类型的 URL
【发布时间】:2017-03-27 23:27:14
【问题描述】:

我们正在尝试为主题自定义帖子类型设置一个新的 url 结构,称为旅游项目。我们想在 url 中将其重命名为示例“Property” http://gotravel.mikado-themes.com/tour-item/gaudis-city/ 这是 url 结构,所以你明白了.. 所以我们希望它是http://gotravel.mikado-themes.com/property/gaudis-city/ - 例如。

我们还想在 url 结构中添加类别,例如 www.travel.com/greece/santorini/property/name-of-property。

一个小问题是这个主题添加了带有插件的自定义帖子类型,由于未来的更新,我们希望避免编辑插件。是否可以添加一些功能来编辑插件添加的自定义帖子类型。 我尝试了几个,但不幸的是它们都不起作用。

感谢任何帮助。

提前致谢!

【问题讨论】:

    标签: php wordpress wordpress-theming customization custom-post-type


    【解决方案1】:

    我已经改变了你上面描述的插件自定义帖子类型。我也遇到了同样的问题,但我用这段代码解决了。

    add_action('registered_post_type', 'rename_custom_post_type_name', 10, 2);
    function rename_custom_post_type_name($post_type, $args) {
    global $wp_rewrite;
    if ($post_type == 'tour-item') { //your old slug here
        $args->rewrite['slug'] = 'property'; //write your new slug here
        if ( $args->has_archive ) {
                $archive_slug = $args->has_archive === true ? $args->rewrite['slug'] : $args->has_archive;
                if ( $args->rewrite['with_front'] )
                        $archive_slug = substr( $wp_rewrite->front, 1 ) . $archive_slug;
                else
                        $archive_slug = $wp_rewrite->root . $archive_slug;
                add_rewrite_rule( "{$archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
                if ( $args->rewrite['feeds'] && $wp_rewrite->feeds ) {
                        $feeds = '(' . trim( implode( '|', $wp_rewrite->feeds ) ) . ')';
                        add_rewrite_rule( "{$archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
                        add_rewrite_rule( "{$archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
                }
                if ( $args->rewrite['pages'] )
                        add_rewrite_rule( "{$archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' );
        }
        $permastruct_args = $args->rewrite;
        $permastruct_args['feed'] = $permastruct_args['feeds'];
        add_permastruct( $post_type, "{$args->rewrite['slug']}/%$post_type%", $permastruct_args );
    }
    }
    

    由于您正在尝试更新帖子网址,因此必须在很多地方进行更改。

    您的另一个问题是您希望您的类别能够正常工作,而我现在无法为您提供帮助。

    希望这对您将网址更改为新网址有用。

    谢谢

    【讨论】:

      猜你喜欢
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 2017-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      • 2013-04-12
      相关资源
      最近更新 更多