我在通过AJAX加载特定类别的帖子列表时遇到问题。有趣的是,我得到了适量的帖子,我得到了每个帖子的摘录,但ID和标题都是空的,加上日期错了(1.1.1970)。这是我在functions.php中的函数:
function ajax_cat(){
if( isset($_GET['action'])&& $_GET['action'] == 'ajax_cat'){
$my_id = htmlspecialchars($_GET["id"]);
$args = array(
'offset' => 0,
'category' => $my_id,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish' );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>
<div class="nadpis1" id="<?php the_ID(); ?>" >
<a href="#<?php the_ID(); ?>"><?php the_title(); ?></a>
<span class="sipka"><?php the_date("d.m. Y"); ?></span>
</div>
<div class="vnutro" ><?php echo the_excerpt();?></div>
<?php endforeach;
die();
}
}
最初这段代码在循环内部运行良好。这就是我现在得到的:
<div class="nadpis1" id="" >
<a href="#"></a>
<span class="sipka">01.01. 1970</span>
</div>
<div class="vnutro" ><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p></div>
<div class="nadpis1" id="" >
<a href="#"></a>
<span class="sipka"></span>
</div>
<div class="vnutro" ><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec adipiscing ultrices posuere. Aenean et egestas enim. Phasellus sit amet nisl elit. Sed pulvinar, purus nec commodo condimentum, lectus risus lacinia urna, sed ultrices magna est vitae turpis. Sed convallis pulvinar gravida. Sed non sem sem, at lobortis tellus. Etiam commodo risus vitae diam cursus volutpat. [...]</p></div>
<div class="nadpis1" id="" >
<a href="#"></a>
<span class="sipka"></span>
</div>
<div class="vnutro" ><p>gfdgdfsgngfjty ty jghj ty jtyhjghj dh gfdj5 fgjfdthbkdfgxhjsrgv ,f xfhbtyj dc rtjdtxhvcntydxvhctr shxfc</p></div>
<div class="nadpis1" id="" >
<a href="#"></a>
<span class="sipka">01.01. 1970</span>
</div>
<div class="vnutro" ><p>Vitajte vo WordPress. Toto je váš prvý článok. Môžete ho upraviť alebo vymazať a potom už len začať písať!</p></div
&GT;
感谢任何建议!
答案 0 :(得分:0)
您不能在The Loop之外使用the_
个函数。尝试使用get_the_title($postid);
和类似的get_
函数。请注意,get_
函数不显示值,而是返回值,因此您必须使用echo get_the_title($postid);
。
编辑:没关系,我发现你正在使用setup_postdata()
。但是,使用传入ID的函数而不是更改全局设置的函数仍然是值得的。尝试使用$post
检查print_r
以查看您在foreach
循环中已有的数据,而无需调用大量其他数据库查询。