доступ и отображение сообщений WordPress из вне WordPress - PullRequest
3 голосов
/ 22 сентября 2009

У меня есть коммерческий сайт (php), и у меня есть блог Wordpress в подкаталоге. Мне нужно отображать последние сообщения на домашней странице, которая выходит из Wordpress: /

сайт: http://www.blabla.com

блог: http://www.blabla.com/blog/

Так что мне нужно отображать сообщения на www.blabla.com/index.php. Как я могу получить доступ к функциональности Wordpress?

Большое спасибо! оценить!

Ответы [ 4 ]

2 голосов
/ 22 сентября 2009

Используя лучшие практики WordPress, вы должны загружать не wp-blog-header.php, а wp-load.php, так как он специально создан для этой цели.

После этого используйте либо объект WP_Query , либо get_posts () . Пример использования WP_Query доступен на странице Loop в кодексе WordPress. Хотя использование любого из них не имеет значения, если вы используете их из-за пределов WordPress, есть меньше шансов на что-то мешающее, например, параметры GET.

Например, используя WP_Query:

<?php
$my_query = new WP_Query('showposts=3');
while ($my_query->have_posts()): $my_query->the_post();
?>
<h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1>
<?php endwhile; ?>

Или, используя get_posts ():

<?php
global $post;
$posts = get_posts('showposts=3');
foreach($posts as $post) :
?>
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php endforeach; ?>

Надеюсь, это поможет! :)

2 голосов
/ 22 сентября 2009

Самый простой способ - использовать ваш Wordpress RSS канал.

Загрузите его, используя file_get_contents() или cURL для большего контроля.

Разобрать его с помощью simpleXML и вывести его.

Вы, вероятно, захотите где-нибудь его кэшировать ... вы можете использовать пользовательские функции APC или PEAR :: Cache_Lite .

Редактировать: код будет выглядеть примерно так (вам нужно больше проверять ошибки и прочее - это только для начала):

$xmlText = file_get_contents('http://www.blabla.com/blog/feed/');

$xml = simplexml_load_string($xmlText);

foreach ($xml->item as $item)
{
    echo 'Blog Post: <a href="' . htmlentities((string)$item->link) . '">'
        . htmlentities((string)$item->title) . '</a>';

    echo '<p>' . (string)$item->description . '</p>';
}
1 голос
/ 22 сентября 2009

эй только что нашел решение онлайн;

http://www.corvidworks.com/articles/wordpress-content-on-other-pages

отлично работает!

<?php
// Include Wordpress 
define('WP_USE_THEMES', false);
require('blog/wp-blog-header.php');
query_posts('showposts=3');


?>      
<?php while (have_posts()): the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endwhile; ?>  
0 голосов
/ 22 сентября 2009

Полагаю, самое простое решение - получать сообщения напрямую из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...