[英]Display WordPress posts on a separate page
我有一个博客和一个网站; 两者是分开的东西。 例如,我将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>
它会很好地显示页面,但它根本不会将帖子发布到页面上。 任何想法为什么它不起作用?
你确定你收到帖子了吗? 获取帖子后尝试转储它们,如下所示:
var_dump($posts)
$posts-variable 是否包含任何内容? 如果没有,您可能不会收到这些帖子,因为 $wpdb(数据库连接类)仍未定义。
其次,当你尝试时会发生什么
<?php echo $post->post_date ?>
代替
<? the_date(); ?>
可能是 wordpress 没有意识到您处于循环中,因此循环函数(例如 the_date、the_title 等)将不起作用。
让我知道其中一项是否有效。
首先,把它放在你包含 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();
仅从快速搜索中我看到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' );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.