为了让wp_query在短代码中工作,您可以按照以下步骤进行操作:
以下是一个示例代码,展示了如何在短代码中使用wp_query:
// 在主题的functions.php文件中注册短代码
function custom_query_shortcode($atts) {
// 解析短代码参数
$atts = shortcode_atts(array(
'category' => 'uncategorized',
'posts_per_page' => 5,
), $atts);
// 设置wp_query参数
$query_args = array(
'category_name' => $atts['category'],
'posts_per_page' => $atts['posts_per_page'],
);
// 执行wp_query查询
$query = new WP_Query($query_args);
// 输出查询结果
if ($query->have_posts()) {
$output = '<ul>';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
$output .= '</ul>';
} else {
$output = '没有找到相关文章。';
}
// 重置wp_query
wp_reset_postdata();
return $output;
}
add_shortcode('custom_query', 'custom_query_shortcode');
在上述示例中,我们创建了一个名为custom_query的短代码,它接受两个参数:category(文章分类)和posts_per_page(每页显示的文章数量)。通过在页面或文章中使用[custom_query category="your-category" posts_per_page="5"]的短代码,您可以显示指定分类下的最新5篇文章的标题,并将其输出为一个无序列表。
请注意,上述示例中的代码仅用于演示目的,您可以根据自己的需求进行修改和扩展。此外,为了使代码更加健壮和安全,您可能还需要添加一些错误处理和安全性检查。
希望这个示例能够帮助您理解如何在短代码中使用wp_query,并根据需要进行自定义查询。如果您需要更多关于wp_query的详细信息,可以参考WordPress官方文档中关于wp_query的说明:https://developer.wordpress.org/reference/classes/wp_query/
领取专属 10元无门槛券
手把手带您无忧上云