在Wordpress域之外提取Wordpress数据

时间:2017-01-27 16:46:11

标签: php wordpress

我有一个网站,我最近添加了一个Wordpress博客。

www.mydomain.com/blog/它位于自己的 new 目录中。

这似乎工作正常,我可以导航到它并完成所有Wordpress的东西。

但我希望在我的初始 index.php 页面(或其他php页面)中包含前3个帖子(或在此处插入Wordpress中的任何内容)。

www.mydomain.com/index.php

我尝试添加<?php get_template_part( 'content', get_post_format() ); ?>,但这似乎不起作用并引发错误。

我知道我的 index.php 并非“技术上”了解Wordpress,所以它会失败。

所以我的问题是: 我在非Wordpress页面中包含哪些内容以便我可以提取帖子?

我真的不知道怎么问谷歌,因为“在php页面中包含wordpress帖子”只是告诉你如何在Wordpress的领域。

2 个答案:

答案 0 :(得分:2)

你必须访问wordpress数据库,在那里你可以获得wordpress的所有帖子

$wpdb2 = new wpdb('dbuser', 'dbpassword', 'dbname', 'dbhost');

    // get 10 posts, assuming the other WordPress db table prefix is "wp_"
    $query = "SELECT post_title, guid FROM wp_posts
              WHERE post_status = 'publish'
               AND post_type = 'post'
              ORDER BY post_date DESC LIMIT 10";

    $someposts = $wpdb2->get_results($query, OBJECT);
    foreach($someposts as $somepost)
      echo "<a href=\"{$somepost->guid}\">{$somepost->post_title}</a><br />";

答案 1 :(得分:0)

您可以使用WordPress Feed,而不是直接连接到WordPress数据库。

$context  = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = 'http://www.example.com/blog/feed';

$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml);
if (isset($xml->channel->item)) 
{
    foreach($xml->channel->item as $item) 
    {
      echo $item->title;
    }
}