我正在尝试修改结果在帖子列表中的显示方式,该列表当前由下面的代码控制。但是,它不是在WP\\u查询中构建的while ( $the_query->have_posts() ) : $the_query->the_post();
我已经习惯了这种样式,并且已经构建了很多短代码和循环样式。
如何将下面的代码更改为“常规”Wordpress循环,以允许我使用像\\u title()这样的模板标记?
$totalposts = $wpdb->get_results($querystr, OBJECT);
$wp_query->request = $querystr . " LIMIT " . $ppp . " OFFSET " .$offset;
$results = $wpdb->get_results($wp_query->request, OBJECT);
foreach ($results as $result) {
$offset++;
$output .= \'<a href="\'.get_post_permalink($result->ID).\'">\' . $result->post_title . \' (\' . $result->post_date . \')</a><br>\';
}
最合适的回答,由SO网友:supertrue 整理而成
为了能够使用模板标记,在获得自定义选择查询后,您必须做两件事:
您必须声明global $post
变量必须调用setup\\u postdata($post)函数来填充变量因此,我的代码必须这样更改:
$results = $wpdb->get_results($wp_query->request, OBJECT);
global $post;
foreach ($results as $post) {
setup_postdata($post);
?>
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
等等。
这一点的关键在于本法典页面:
Displaying posts using a custom select query