
在 wordpress 中实现无刷新随机文章加载功能
要在 WordPress 页面中点击按钮即动态加载一篇新随机文章,而无需整页刷新,最简洁高效的方式是利用 jQuery 的 .load() 方法配合当前页面的局部重载能力——这避免了传统 AJAX 所需的 PHP 动作钩子(wp_ajax_)、 nonce 验证和 JSON 响应处理等复杂流程。
✅ 实现原理
jQuery 的 $("#randompost").load(url + " #randompost") 会向当前页面 URL 发起 GET 请求,仅提取响应 HTML 中 #randompost 容器内的内容,并替换当前 DOM 中同 ID 元素的内容。由于 WordPress 每次加载该页面时都会执行一次 WP_Query(...'orderby'=>'rand'...),因此只要将随机文章输出包裹在
✅ 完整实现步骤
-
确保 jQuery 已加载(WordPress 主题通常已引入;若未启用,可在 functions.php 中添加或在模板底部手动引入):
htmlppt.skill下载把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
-
在模板中正确组织 HTML 结构与 PHP 查询:
<div id="randompost"> <?php $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 1, 'orderby' => 'rand', 'no_found_rows' => true, // 提升性能:禁用分页计数 ); $random_query = new WP_Query($args); if ($random_query->have_posts()) : while ($random_query->have_posts()) : $random_query->the_post(); ?> <h2><?php the_title(); ?></h2> <div class="post-content"><?php the_content(); ?></div> <?php endwhile; wp_reset_postdata(); // 关键:重置全局 $post 对象 else : echo '<p>暂无可用文章。</p>'; endif; ?> </div>
- 添加轻量级 JS 交互逻辑(建议置于
















