Показывать сообщения WordPress на отдельной странице - PullRequest
2 голосов
/ 16 ноября 2011

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

Это блог на 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>

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

Ответы [ 3 ]

1 голос
/ 16 ноября 2011

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

var_dump($posts)

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

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

<?php echo $post->post_date ?>

вместо

<? the_date(); ?>

Возможно, WordPress не осознает, что вы находитесь в цикле, и поэтому функции цикла (например, the_date, the_title, ...) не будут работать.

letя знаю, работает ли одна из этих вещей.

1 голос
/ 16 ноября 2011

сначала поставьте это перед тем, как включить wp-blog-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 голосов
/ 16 ноября 2011

Просто из быстрого поиска я вижу, что использование 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' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...