在单独的页面上显示WordPress帖子

时间:2011-11-16 13:27:48

标签: php html wordpress

我有一个博客和一个网站;这两者是完全不同的东西。例如,我有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 个答案:

答案 0 :(得分:1)

你确定要收到帖子吗?尝试在获取帖子后转储帖子,如下所示:

var_dump($posts)

$ posts-variable是否包含任何内容?如果没有,你可能不会得到帖子,因为$ wpdb(数据库连接类)仍未定义。

其次,当你尝试

时会发生什么
<?php echo $post->post_date ?>

而不是

<? the_date(); ?>

可能是wordpress没有意识到你处于循环中,因此循环函数(例如the_date,the_title,...)将无效。

如果其中一项有效,请告诉我。

答案 1 :(得分:1)

首先,在你加入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();

答案 2 :(得分: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' );