You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress首页(index.php)显示自定义文章类型内容?

WordPress首页显示自定义文章类型内容的解决方案

问题核心原因

你代码里的关键错误是自定义文章类型名称不匹配:functions.php中注册的文章类型slug是homepage_content,但index.php的查询参数里写的是HomepageContents,大小写和名称完全不一致,导致WP_Query无法匹配到对应内容。

修正后的index.php代码

要实现仅显示一篇、且和single.php展示效果一致的需求,修改后的代码如下:

<?php
// 查询参数:指定正确的文章类型,仅获取1篇,按发布时间倒序排列
$args = array(
    'post_type' => 'homepage_content',
    'posts_per_page' => 1,
    'orderby' => 'date',
    'order' => 'DESC'
);
  
$loop = new WP_Query( $args );
?>
<?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <!-- 直接复用single.php里的内容结构,保证样式和展示逻辑一致 -->
    <h1 class="entry-title"><?php the_title(); ?></h1>
    <div class="entry-content">
        <?php the_content(); ?>
        <!-- 若single.php包含元信息(作者、日期等),可同步添加 -->
        <div class="entry-meta">
            <span class="posted-on">发布于 <?php the_date(); ?></span>
            <span class="byline">作者 <?php the_author(); ?></span>
        </div>
    </div>
<?php endwhile; else: ?>
    <p>暂无自定义内容</p>
<?php endif; ?>
<?php wp_reset_postdata(); // 重置查询上下文,避免影响后续全局文章查询 ?>

额外注意事项

  • 确保你已经在WordPress后台发布了至少一篇Homepage Contents类型的文章
  • 如果需要和single.php的样式完全统一,直接将single.php内的内容模板片段复制到上述循环中即可
  • 必须添加wp_reset_postdata(),否则会干扰后续全局文章查询(比如侧边栏、页脚的文章列表)

内容的提问来源于stack exchange,提问作者Roberto Nevilis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 03:11:50