如何为自定义帖子类型和关联的自定义分类创建子域名

时间:2011-11-18 作者:Bohdan Hdal

我创建购物车,基于custom post types. 对于这个购物车,我有两个相关的自定义分类法。

我需要创建shop.mysite.com 而不是mysyte.com/shop 仅适用于this one 自定义帖子类型dont need multisite 解决方案posts 当前职位类型的将作为店铺打开。我的网站。com/some post/taxonomies 将作为店铺开业。我的网站。com/customtax/some tax value/few pages 与shop as shop相关。我的网站。com/一些静态页面//li>感谢您的帮助!

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

虽然multisite可以通过域映射为您提供所需的内容,但您已经选择放弃此选项,转而使用更耗时、更难的手动htaccess重写方法等。

您面临的挑战包括:

告诉wordpress重写它输出到商店的永久链接URL。我的网站。com,但不适用于整个网站,重定向到达mysite的用户。com/shop/some post处理wordpress permalink基础架构

How you would make it work without multisite:

<你必须写出你自己的永久链接,或者添加一个钩子,以便get\\u permalink/the\\u permalink和菜单等都使用正确的域。你需要在商店设置htaccess。我的网站。com,使其映射到正常页面。然后,您需要在正常页面上检查引用方,以便在找到它时重定向到子域
  • 注册自定义帖子类型时,您需要在重写中添加店铺前缀。处理子域时,您需要说明/shop前缀,否则您将拥有店铺。我的网站/商店/一些帖子

    您可以使用相同的表等在商店子域上安装第二个wordpress。这将比上述操作更容易,但会引入某些其他问题,并且您需要两个主题,硬编码以从其他对应内容中过滤出内容。

    How you would make it work with multisite:

    <您将为店铺子域创建第二个站点,并添加访问规则以将任何请求转发给mysite。继续购物。我的网站。当您想在mainmysite上显示店铺商品时。com域,您可以执行以下操作:
  • http://codex.wordpress.org/Function_Reference/switch_to_blog

    switch_to_blog($shopsiteID);
    // display shop items
    restore_current_blog();
    
    正如你所看到的那样without multisite的工作量要比它大得多with 多站点,因为已经完成了许多实现多站点所需的工作。

    我建议您按照以下顺序进行尝试:

    • 多站点简单
    • 两次安装(cookie/upload hell)
    • 一次安装最难(permalink hell)
      • 唯一能让你在没有大量混乱的情况下得到你想要的东西的解决方案是多站点选项加上域映射。我估计不使用multisite将使此任务的小时数和成本增加三倍,但无法保证最终会获得满意的结果。

        所以是的,你没有need 多站点,就像我没有need 我的车上有轮胎,这是可行的,但为什么要给自己制造麻烦呢。Multisite会给你很多建议,因为它是最简单、最简单、最快和最安全的方法。

    SO网友:Jason

    添加页面。将子域指向该页面永久链接(/examplepage)将文件添加到服务器上创建的实际/examplepage文件夹中,该文件夹中包含以下内容:

    /**
    * Front to the WordPress application. This file doesn\'t do anything, but loads
    * wp-blog-header.php which does and tells WordPress to load the theme.
    *
    * @package WordPress
    */
    
    /**
    * Tells WordPress to load the WordPress theme and output it.
    *
    * @var bool
    */
    
    $_GET[\'page_id\']=4323;
    
    define(\'WP_USE_THEMES\', true);
    
    /** Loads the WordPress Environment and Template */
    require(\'../wp-blog-header.php\');
    

    结束

    相关推荐