在过去的一周里,我做了很多研究,没有找到一个可靠的答案来解决我的问题。所以,我决定来这里问问是否有人知道如何帮助我解决问题。
我将使用WordPress Multisite进行一个项目,该项目将允许用户注册一个网站,并能够将我们将提供给他们的内容重新品牌化为他们自己的内容(即:我将与之合作的公司有大量房地产经纪人信息,他们想免费向其他房地产经纪人提供这些信息,并允许他们用自己的徽标和联系信息为其品牌化)。
因此,很容易创建一个模板站点,其中所有内容都已预加载。当MS创建新站点时,它会获取模板并使用模板创建新站点。
但是,我需要能够在所有网站上修改此内容。我们将有大约50个页面需要在所有这些网站上“共享”,如果我需要进行更改,我需要全面更改。我试过用这个
<?php switch_to_blog(1); ?>
Some code that displays the menu of the Main Blog
<?php restore_current_blog(); ?>
但这会将所有内容链接到主网站(这违背了付费将内容打上自己品牌的目的)。我找到了一些插件,可以让你向所有网站广播帖子,但这是将要预加载的内容。
尽管如此,我还是希望这里有人以前做过这件事,并愿意分享一些这方面的专业知识。谢谢你看这个!
EDIT #1
我通过WordPress支持论坛以及StackExchange进行了研究。
Is there a way to share content amongst wordpress sites :: 这个选项对我来说真的不起作用-我必须能够为用户设置新站点收取费用,并让他们选择将域名添加到他们的站点,这就是为什么我认为我需要多站点的方式。
Re-Blogging - WP MS Support Forum :: 这是我发现的跨所有平台重新发布博客内容的最常用方法。如果我需要向每个人发帖子,那就太好了。然而,这不是我想要完成的。
Exactly what I am looking for :: 但遗憾的是,没有答案。
我在WordPress上搜索了“多站点内容共享”的各种答案,但没有找到与我的主题(或我正在寻找的内容)相关的任何内容(除了#3)
EDIT #2昨天做了更多的研究之后,我发现ThreeWP Broadcast. 它碰巧做了很多实际需要的事情,但在我研究的前几天,它隐藏了自己。它允许您在所有子网站中广播页面,并向这些页面发送更新。令人惊叹的因此,出现了一个新的问题。我的客户不希望最终用户编辑他们的内容(版权和法律原因)。因此,我编写了一些代码,可以在后端的编辑页面顶部自动附加一些JS:
function hidePublishingNow() {
global $blog_id, $wpdb;
$prefix = "ssr_";
if(is_super_admin()) {}
else {
$page = $_GET[\'post\'];
$pageFound = false;
if($page > 0 && isset($blog_id)) {
$sql = "SELECT * FROM ssr__3wp_broadcast_broadcastdata WHERE blog_id = $blog_id";
$results = $wpdb->get_results($sql, "ARRAY_A");
foreach($results as $r) {
if($r[\'post_id\'] == $page) { $pageFound = true; }
else {}
}
if($pageFound == true) {
wp_enqueue_script(
\'hide-publishing\',
get_template_directory_uri() . \'/js/removePublishing.js\',
array(\'jquery\')
);
}
} else {}
}
}add\\u action(\'admin\\u head\',\'hidePublishingNow\');
基本上,当post.php 在管理面板中加载,它检查当前正在编辑的页面是否是通过广播连接的页面。如果已连接,则加载JS并删除该页面的所有元素,并将其替换为警告。最终用户将永远无法在编辑器中看到内容,也无法更新页面。
这很有效。如果这是我必须放弃的,那太好了——这是我找到的最好的解决方案。我会怎么做love 要做的就是控制主要wp-admin/edit.php?post_type=page 页面(管理面板在此列出所有可编辑的页面)。如果在创建列表时拦截WP操作,并在创建列表时删除特定页面,那将非常好。仍在进行研究,看看这是否可能。我只是想在这里更新我的进度,以防有人有什么建议,或者如果其他人遇到同样的问题,我也会更新我的进度。
<小时>