2011-11-16 4 views
2

У меня есть блог и веб-сайт; они все вместе. Например, у меня есть www.domainname.com в качестве основного сайта, а в блоге будет www.domainname.com/blog/Показать сообщения WordPress на отдельной странице

Это блог WordPress, однако я не хочу, чтобы люди смотрели на интерфейс WordPress, поэтому я хотел бы написать php функция, которая будет вытаскивать сообщения из WordPress на отдельную страницу на главном сайте.

Функция У меня до сих пор выглядит следующим образом:

<div id="blogPosts"> 
<?php 
    require('../path1/path2/wp-blog-header.php'); 
?>  
<?php 
    $posts = get_posts('numberposts=10&order=DESC&orderby=post_title'); 
    foreach ($posts as $post) : start_wp(); 
?> 
    <h4 class="blogDate"> <? the_date(); ?> </h4> 
    <hr /> 
    <h5 class="blogTitle"> <? the_title(); ?> </h5> 
    <p class="blogText"> <? the_excerpt() ?> </p> 
    <br /> 
<?php 
    endforeach; 
?> 
</div> 

Он будет отображать страницу в порядке, но это не отправляя сообщения на страницу на всех. Любые идеи, почему это не сработает?

+0

Могли вы используете RSS-канал? –

+0

Вам не хватает точки с запятой 'the_excerpt();' –

ответ

1

первый, поставить это перед и включить Wp-блог-header.php

define('WP_USE_THEMES', false); 

и я думаю, что вы ищете WP_Query не get_posts, если вы хотите использовать функции петли

$the_query = new WP_Query($args); 

while ($the_query->have_posts()) : $the_query->the_post(); 
    the_title(); 
endwhile; 
wp_reset_postdata(); 
+0

На мгновение я подумал, что у меня это работает, но я все еще не могу показаться, что это вообще работает: \ –

+0

Включите отображение ошибок, посмотрите, есть ли у вас что-нибудь –

0

Просто от быстрого поиска я вижу, что использование get_posts($args) ожидает $args быть массивом с этими дополнительными значениями

$args = array(
'numberposts'  => 5, 
'offset'   => 0, 
'category'  => , 
'orderby'   => 'post_date', 
'order'   => 'DESC', 
'include'   => , 
'exclude'   => , 
'meta_key'  => , 
'meta_value'  => , 
'post_type'  => 'post', 
'post_mime_type' => , 
'post_parent'  => , 
'post_status'  => 'publish'); 
1

Вы уверены, что вы получаете сообщения? Попробуйте демпинг своих сообщений после того, как вы скачали их, как это:

var_dump($posts) 

содержит ли $ сообщений переменного что-нибудь? Если нет, вы, вероятно, не получите сообщений, потому что $ wpdb (класс подключения к базе данных) по-прежнему не определен.

Во-вторых, то, что происходит, когда вы пытаетесь

<?php echo $post->post_date ?> 

вместо

<? the_date(); ?> 

Это может быть, что WordPress не понимаете, что вы в цикле и для этого Петля-функции (например, the_date , the_title, ...) не будет работать.

дайте мне знать, если одна из этих вещей работает.

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