内容全部由单一安装的WordPress管理的多个站点/域

时间:2012-10-23 作者:indextwo

我收到了一位客户的一个有趣的请求,随后花了几个小时研究它。问题的症结正是这篇文章的标题所暗示的:他们有3个独立的网站,拥有独特的域名,但主题材料和;三者的内容表面上是相同的。

他们希望能够从一个单一的中心位置管理一个单一的内容池,并使这些更改在3个网站上得到响应。

例如,有一个订单详细信息页面,其中包含一个电子邮件地址,用于查询过期目录项目,以及一个从中购买物品的链接列表。客户希望能够将该电子邮件地址从“信息”更改为“销售”,并将iTunes链接切换为亚马逊链接,然后将这些更改更新到三个站点中每个站点的订单详细信息页面。

我看了一下WPMU; 我以前没有使用过它,但我只是做了一个快速安装,在过去一个小时左右一直在阅读它,但我不认为这是我们所追求的,因为每个子域的内容都是“孤立的”(正如您所期望的)。

我还调查了以下服务InfiniteWP, 这看起来很好,并表明这种功能正在“开发中”(需要付费),但很明显,在此期间,需要在活动站点之间切换以更新帖子;一次分页一个站点。

那么,有没有人知道这种事情在技术上是否可行,或者客户是否要求在棍子上放月亮?

Update: 客户建议可以在一个、两个或所有三个网站上发布一条新闻帖子,这是一个棘手的问题。这使得事情。。。有趣(读:头痛)。

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

这应该是可行的。

第一步是将每个域指向WordPress的相同文档根目录/安装。

接下来,使用WP_HOMEWP_SITEURL 在里面wp-config.php 这一变化基于$_SERVER[\'HTTP_HOST\']. 示例:

<?php
define(\'WP_HOME\', \'http://\' . $_SERVER[\'HTTP_HOST\']);
define(\'WP_SITEURL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/wp\');
这将迫使您的永久链接(至少是动态生成的永久链接)、排队等正常工作。

从那里,我将在管理中创建一个元框,其中包含一些可用域的复选框。每个可用的帖子类型都应该有这个。

在前端,钩住pre_get_posts, 查找当前域作为元键,将查询更改为仅获取该域的帖子。

快速示例(未经测试,请谨慎使用):

<?php
add_action(\'pre_get_posts\', \'wpse70213_change_q\');
function wpse70213_change_q($query)
{
    if(is_admin() || !$q->is_main_query())
        return;

    $key = \'wpse70213_host_\'; // or whatever you want this to be
    $host = strtolower($_SERVER[\'HTTP_HOST\']); // normalize http host

    // not sure if you can set meta_query like this...
    $q->set(\'meta_query\', array(array(
        \'key\'   => $key . $host,
        \'value\' => \'on\', // or whatever you use for "on" checkboxes
    )));
}
简而言之,这是可行的,但您需要控制整个WP安装。

其他需要考虑的事项:

您如何处理导航菜单meta_query 在每页上添加

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register