Wordpress:获取另一页的内容

时间:2015-07-24 04:45:32

标签: php wordpress

我正在为SEO插件的过滤器创建一些东西,我想找到一种方法来从另一个页面获取另一个特定帖子的内容(请注意,此代码很可能在管理面板中运行)。

我希望这样做的方式是这样的:

$doc = new DOMDocument();
$doc->loadHTMLFile(get_permalink($post->ID));
// Some more code before saving the HTML

它工作正常,但它不能在我的生产共享服务器上工作(可能是由于安全原因)。

我还希望在不破坏页面其他方面的情况下采用更有效的方式。

注意我也尝试过:

  ob_start();
  include get_template_directory() . '/single-' . $post->post_type . '.php';
  $html = ob_get_clean();

然而,这打破了管理面板上的一些东西。

是否有更好的方法来获取"内容"该网站的另一个页面使用并将其作为字符串存储在Wordpress中的变量中,而不会破坏任何内容。

更新 为了使我的问题更清楚,请注意我想获得完整的HTML(不仅仅是它的一个方面)。

此外,我无法将http请求发送到同一服务器(由于共享服务器的限制)。出于性能原因,无论如何都要避免传统的Http请求。毕竟WordPress已经启动并运行。

3 个答案:

答案 0 :(得分:2)

解决方案1:file_get_contents

使用file_get_contents,如下所示。

$content = file_get_contents(get_permalink($post->ID));

为了使用file_get_contents,应启用php.ini中的PHP配置选项allow_url_fopen。如果您使用共享托管,则可能会禁用allow_url_fopen和/或您的托管服务提供商可能不允许您更改它。

解决方案2:cURL

或者,您可以使用cURL。为了使用它,PHP必须具有内置的cURL支持或安装了cURL扩展。

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $get_permalink($post->ID));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$content = curl_exec($curl);
curl_close($curl);

答案 1 :(得分:1)

file_get_contents

$content = file_get_contents(get_template_directory() . '/single-' . $post->post_type . '.php');

答案 2 :(得分:1)

如果您没有尝试获取页面的完整html而只是获取其他帖子的内容,那么这将有效:

{{1}}