在其他平台上使用我的WordPress菜单

时间:2012-06-29 作者:binaryorganic

我有一个WordPress网站,正在添加一个Shopify托管的电子商务部分,该部分将托管在他们的服务器上,并可通过子域访问。有没有办法在另一个平台和(可能是两者中较难的)子域上镜像我的网站的WordPress导航?

我根本不打算使用Shopify的产品菜单。所以我不想把两者或任何东西合并。。。这是一种让WP菜单在其他地方显示的简单方法。

2 个回复
SO网友:fdsa

Here is a guide. 其要点是创建一个包含菜单的模板文件,然后从外部网站调用该文件。

SO网友:brasofilo

只是做了一个可能有用的简单测试。

在我的本地开发多站点中,我在根目录下放置了两个文件:

test.html

在静态页面中加载WordPress菜单

<html>
<head>
<TITLE>Testing Ajax/WordPress</TITLE>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
    jQuery(document).ready(function($) {
        $("#nav-container").load("http://brasofilo.dev/test.php", function(response, status, xhr) {
          if (status == "error") {
            var msg = "Sorry but there was an error: ";
            $("#nav-error").show();
            $("#nav-error").html(msg + xhr.status + " " + xhr.statusText);
          }
        });
    });
</script>
</head>
<body>
    <div id="nav-container">Container DIV</div>
    <div id="nav-error" style="display:none">ERROR</div>
</body>
</html>

test.php

返回WordPress菜单

<?php
define( \'WP_USE_THEMES\', false );
require( \'./wp-load.php\' );
wp_nav_menu( array( \'menu\' => \'Test Menu\' ) );
文件test.html 已从子域加载http://test.brasofilo.dev, 但是Ajax call 未能在主域中加载PHP文件http://brasofilo.dev 由于Same origin policy.

要克服此问题,请执行以下操作Cross-Origin Resource Sharing 在中规则.htaccess:

Header set Access-Control-Allow-Origin http://test.brasofilo.dev

结束