请求为WordPress自定义文章查询添加无结果时的替代内容
给自定义文章查询添加无结果提示的解决方案
别担心,我帮你搞定这个问题!因为你不是PHP开发者,我会尽量把步骤写得直白,你只需要找到你的自定义文章查询代码,做一点点修改就行。
首先,假设你现在的查询代码大概是这样的(如果你的代码稍有不同,核心逻辑是一致的):
// 自定义文章查询的参数 $custom_query_args = array( 'post_type' => 'your_custom_post_type', // 替换成你实际的自定义文章类型slug 'posts_per_page' => 10, // 你设置的每页显示数量 // 其他可能的查询条件,比如分类、排序等 ); // 执行查询 $custom_query = new WP_Query($custom_query_args); // 如果有查询结果,就循环显示文章 if ($custom_query->have_posts()) { while ($custom_query->have_posts()) { $custom_query->the_post(); // 这里是你原来显示文章内容的代码,比如标题、缩略图、摘要等 echo '<h3>' . get_the_title() . '</h3>'; echo '<div class="post-excerpt">' . get_the_excerpt() . '</div>'; } // 一定要重置查询,避免影响WordPress后续的全局查询 wp_reset_postdata(); }
现在,你只需要在这个if代码块的后面,添加一个else分支,用来显示无结果时的提示内容。修改后的完整代码如下:
// 自定义文章查询的参数 $custom_query_args = array( 'post_type' => 'your_custom_post_type', // 替换成你实际的自定义文章类型slug 'posts_per_page' => 10, // 你设置的每页显示数量 // 其他可能的查询条件,比如分类、排序等 ); // 执行查询 $custom_query = new WP_Query($custom_query_args); // 如果有查询结果,就循环显示文章 if ($custom_query->have_posts()) { while ($custom_query->have_posts()) { $custom_query->the_post(); // 这里是你原来显示文章内容的代码,比如标题、缩略图、摘要等 echo '<h3>' . get_the_title() . '</h3>'; echo '<div class="post-excerpt">' . get_the_excerpt() . '</div>'; } // 一定要重置查询,避免影响WordPress后续的全局查询 wp_reset_postdata(); } else { // 这里就是无结果时要显示的内容,你可以根据自己的需求修改文字和样式 echo '<div class="no-results-message">'; echo '<h3>抱歉,没有找到相关内容</h3>'; echo '<p>你可以尝试浏览其他分类,或者调整搜索条件哦~</p>'; echo '</div>'; }
关键说明:
- 你只需要把
else块里的提示文字改成你想要的内容就行,比如换成英文、调整语气,或者添加自定义CSS类来美化样式。 - 一定要保留
wp_reset_postdata()这行代码,它是用来重置WordPress的全局文章数据,避免后续的侧边栏、页脚等内容出现错误。 - 如果你的原有代码里已经有
if ($query->have_posts())的判断,直接在它后面加else块就行,不用重复写前面的查询部分。
这样修改后,当你的自定义文章查询没有结果时,页面就会显示你设置的提示内容,而不是空白啦!
内容的提问来源于stack exchange,提问作者omar
相关产品推荐
相关产品推荐

