2009-09-22 4 views
3

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

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

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

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

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

ответ

2

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

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

Разберите его simpleXML и выведите его.

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

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

$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>'; 
} 
+0

uuu это не звучит так просто:) много шагов ... Я изучаю детали вашего совета, спасибо! –

+0

@artmania: Поскольку ваш основной сайт и ваш блог находятся на одном сервере, и оба используют php, этот метод, вероятно, не нужен, хотя в некотором роде он немного более гибкий, чем то, что вы делаете. – Brian

-1

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

+2

Очень рискованно ходить по другому программы внутри - вы - одно обновление wordpress от катастрофы ... – Greg

1

эй просто нашел решение онлайн;

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; ?> 
2

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

После этого используйте либо the WP_Query object, либо get_posts(). Пример использования WP_Query доступен на странице The 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; ?> 

Надеется, что это помогает! :)

Смежные вопросы