搞定Wordpress主页不要全部显示:3步避坑指南

搞定Wordpress主页不要全部显示:3步避坑指南

找建站公司改个需求,拖了一周还没动静?这种憋屈感,做过网站的都懂。其实“Wordpress主页不要全部显示”这种需求,根本不需要等开发排期。今天这篇避坑指南,专门给甲方对接人和独立站长看,不整虚的,直接上实操。

咱们先理清一个误区:很多老板觉得,让WordPress主页只显示部分文章,是不是要重写代码?是不是要买什么高级插件?都不是。这本质上是一个“显示逻辑”的配置问题。 WordPress 默认把主页当作“文章列表页”,把所有已发布的文章按时间倒序全部吐出来。如果内容多,页面加载慢,用户体验差,SEO权重也被分散了。

我们要做的,就是切断这个默认逻辑,把主页变成“精选橱窗”,而不是“仓库货架”。

一、 概念速懂:为什么主页不能全显示?

在动手之前,你得明白 WordPress 的“静态首页”和“博客文章页”是两个独立的概念。

1. 页面定位不同

  • 主页 (Homepage): 是访客进门第一眼看到的地方。它的任务是“转化”和“引导”。如果这里堆满了几十篇旧文章,用户视觉疲劳,找不到重点,跳出率飙升。
  • 文章页 (Posts Page): 是内容归档的地方。它的任务是“展示”和“检索”。用户想看历史内容,去这里翻。

2. 性能与 SEO 逻辑 一张图片可能几百 KB,一篇带图文章加载下来可能 1-2 MB。如果主页一次性加载 10 篇文章,首屏加载时间轻松超过 3 秒。根据 Google PageSpeed Insights 的标准,移动端加载超过 3 秒,流量流失率高达 53%。 更致命的是 SEO。搜索引擎爬虫喜欢结构清晰的页面。如果主页全是杂乱的文章列表,爬虫无法判断你的核心业务是什么。把主页做成“定制首页”(展示核心服务、案例、联系方式),把文章列表放到单独的 /blog 页面,权重更集中,排名更稳。

3. 常见误区 很多人去后台“设置”里找,找不到“隐藏文章”的开关。那是因为你方向错了。WordPress 并没有一个直接的“隐藏主页文章”按钮,我们需要通过更换显示页面或者修改查询逻辑来实现。

二、 注册与购买流程:准备阶段不踩坑

在开始配置之前,确保你的基础设施是干净的。很多老站出问题,不是代码错了,是环境太乱。

1. 服务器环境检查 如果你用的是虚拟主机,先检查 PHP 版本。WordPress 5.0 以后要求 PHP 7.0 以上,建议直接上 PHP 8.0 或 8.1。

  • Linux 服务器命令检查:
    php -v
    
    如果版本过低,联系服务商升级,或者自己用 Docker 部署。

2. 域名与 SSL 证书 主页不显示全部文章,通常伴随着页面重构。重构期间,确保域名解析正确,SSL 证书有效。

  • HTTPS 强制跳转: 在 .htaccess (Apache) 或 nginx.conf (Nginx) 中配置 301 跳转。
  • Nginx 配置示例:
    server {listen 80;server_name yourdomain.com;return 301 https://$server_name$request_uri;
    }
    
    别小看这一步,混合内容(Mixed Content)报错会让你的首页样式全乱,看着像没配置成功,其实是证书问题。

3. 备份!备份!备份! 改 WordPress 配置,尤其是涉及查询逻辑的代码,手抖一下就是白屏。

  • 数据库备份:
    mysqldump -u root -p wordpress_db > backup_$(date +%F).sql
    
  • 文件备份: 打包 wp-content 和 wp-config.php。 这是底线,没有备份不谈技术。

三、 配置与部署步骤:三种方案任选

根据你的技术水平和需求,我有三套方案。从最简单到最灵活,任选其一。

方案 A:零代码方案(适合纯小白)

这是最推荐甲方的做法,不用碰代码,安全系数最高。

步骤 1:创建两个新页面

  1. 进入 WordPress 后台 -> 页面 -> 新建页面。
  2. 创建一个页面,命名为 “首页”,内容随意写点(比如“欢迎来到我的网站”)。
  3. 再创建一个页面,命名为 “博客文章”,内容留空或写个简介。

步骤 2:设置静态首页

  1. 进入 设置 -> 阅读。
  2. 找到 “您的网站主页显示” 选项。
  3. 选择 “一个静态页面”。
  4. 在 “主页” 下拉框中,选择刚才创建的 “首页”。
  5. 在 “文章页” 下拉框中,选择刚才创建的 “博客文章”。
  6. 点击保存。

效果: 现在,访问 yourdomain.com 看到的是“首页”,里面没有自动抓取的文章列表。 访问 yourdomain.com/blog (假设你的文章页 URL 是 blog),才会看到所有文章的列表。 这就实现了“主页不要全部显示”,甚至“主页完全不显示文章”。

方案 B:插件方案(适合需要“精选展示”的站长)

如果你希望主页显示 3 篇最新文章 或 指定分类的文章,而不是全部,用插件最省事。

推荐插件:WP Super Pages 或 Blocksy Theme (如果你用的是这个主题)。 这里以通用的 WP Super Pages 为例:

  1. 安装并激活插件。
  2. 在后台菜单找到 WP Super Pages。
  3. 点击 “Add New”。
  4. Name: 填 Home。
  5. Page Template: 选择默认。
  6. Query Settings:
    • 勾选 “Use custom query”。
    • Post Type: post
    • Posts Per Page: 3 (只显3篇)
    • Category: 选择你希望展示的分类(比如“公司新闻”)。
  7. 保存。
  8. 回到 设置 -> 阅读,将主页指向这个生成的 Home 页面。

优点: 灵活,可以指定只显示“案例”分类,隐藏“技术分享”分类。 缺点: 多一个插件,增加一点点服务器负担,但可忽略不计。

方案 C:代码方案(适合有开发能力的团队)

如果你用子主题,或者想彻底控制逻辑,改代码是最干净的。 警告: 修改 functions.php 前,务必使用子主题!子主题!子主题!

目标: 让主页查询只返回 5 篇文章,并且排除“草稿”和“密码保护”的文章。

在子主题的 functions.php 中添加以下代码:

/*** 修改主页查询逻辑* 限制主页显示文章数量,并排除特定状态*/
function customize_homepage_query( $query ) {// 仅针对主页 (is_home) 且不是管理员后台 (is_admin) 生效if ( is_home() && ! is_admin() ) {// 设置每页显示文章数为 5$query->set( 'posts_per_page', 5 );// 排除已隐藏文章 (可选,取决于你的需求)// $query->set( 'post__not_in', array(123, 456) ); // 123, 456是文章ID// 如果需要按修改时间排序而不是发布时间// $query->set( 'orderby', 'modified' );}
}
add_action( 'pre_get_posts', 'customize_homepage_query' );

进阶技巧:使用 GitHub 开源仓库中的优秀查询类 如果你需要更复杂的逻辑,比如“显示最新 3 篇 + 随机 2 篇”,手动写代码很麻烦。 可以去 GitHub 搜索 WordPress Query Builder 相关的开源仓库。 例如,参考 WordPress Core 的源码逻辑,或者使用 Query Monitor 插件(GitHub 上有源码)来调试你的查询语句。 在 Query Monitor 中,你可以实时看到当前页面执行的 SQL 语句,确认 posts_per_page 是否生效,post_status 是否正确。

代码部署步骤:

  1. 登录服务器,进入 /wp-content/themes/your-child-theme/ 目录。
  2. 打开 functions.php。
  3. 粘贴上述代码。
  4. 保存文件,权限设置为 644。
  5. 刷新前台,检查文章数量是否变化。

四、 常见问题与排查

改完没效果?别慌,按这个顺序排查。

Q1: 改了设置,主页还是显示所有文章?

  • 原因: 缓存。
  • 对策:
    • 清除浏览器缓存(Ctrl+F5)。
    • 清除服务器端缓存(如有 Varnish, Nginx Cache)。
    • 清除 WordPress 插件缓存(如 W3 Total Cache, WP Rocket)。
    • 命令行清除 OPcache (PHP):
      # 重启 PHP-FPM 服务以清除 OPcache
      sudo systemctl restart php-fpm
      

Q2: 主页显示文章,但文章页(/blog)是 404?

  • 原因: 固定链接(Permalinks)结构冲突。
  • 对策:
    • 进入 设置 -> 固定链接。
    • 选择 “自定义结构”,填入 /%postname%/。
    • 点击保存。这会刷新重写规则。
    • 检查 .htaccess 文件是否可写。

Q3: 移动端主页加载依然很慢?

  • 原因: 虽然文章少了,但图片没优化。
  • 对策:
    • 使用 Smush 或 ShortPixel 插件压缩图片。
    • 启用 Lazy Load(懒加载),让首屏以外的图片延迟加载。
    • 检查是否开启了 CDN。

Q4: 代码修改后,网站白屏?

  • 原因: PHP 语法错误。
  • 对策:
    • 通过 FTP 或 SSH 登录服务器。
    • 打开 functions.php,删除刚才添加的代码块。
    • 如果之前备份过,直接替换文件。
    • 调试技巧: 在 wp-config.php 中临时开启 WP_DEBUG:
      define( 'WP_DEBUG', true );
      define( 'WP_DEBUG_LOG', true );
      define( 'WP_DEBUG_DISPLAY', false );
      
      然后查看 wp-content/debug.log 文件,找到具体报错行。

五、 优化建议与长期维护

搞定“主页不显示全部文章”只是第一步,要想网站长期健康,还得看细节。

1. 面包屑导航 (Breadcrumbs) 当主页变成“定制页”后,用户可能迷路。在“博客文章”页面顶部,加上面包屑导航:首页 > 博客。

  • 插件推荐: Breadcrumb NavXT。
  • 作用: 提升用户体验,同时生成结构化数据,利于 SEO。

2. 分页逻辑优化 如果文章页(/blog)文章很多,确保分页正常。

  • 默认分页: WordPress 自动生成分页。
  • 自定义分页: 有些主题分页样式不好看,可以在子主题中覆盖 pagination.php 文件。
  • SEO 注意: 确保分页 URL 带有 ?paged=2 或 /page/2/,并在 robots.txt 中不要屏蔽分页(除非你的内容完全重复)。

3. 监控与日志

  • 定期查看服务器日志:
    tail -f /var/log/nginx/error.log
    
    如果有大量 404 或 500 错误,可能是文章被删除但链接还在,或者插件冲突。
  • 使用 UptimeRobot 或 Pingdom: 设置监控,如果主页加载超时或报错,第一时间收到邮件/短信通知。

4. 内容策略配合 技术只是手段,内容才是核心。

  • 既然主页不显示全部文章,那就把最有价值的 3-5 篇文章放在主页的“精选区”(通过方案 B 或自定义代码实现)。
  • 旧文章不要删,保留在“博客文章”页,通过站内搜索或分类导航让用户自己找。
  • 内部链接: 在新文章中,链接到旧的优质文章,形成网状结构,提升全站权重。

5. 安全加固

  • 禁用 XML-RPC:如果不用 RSS 阅读器或 Jetpack,在 .htaccess 中禁用:
    <Files xmlrpc.php>
    Order allow,deny
    Deny from all
    </Files>
    
  • 定期更新:WordPress 核心、主题、插件。这是防黑客的第一道防线。

结语

WordPress 主页不要全部显示,看似是个小需求,实则涉及架构、性能、SEO 和用户体验的方方面面。

建站公司拖一周,往往是因为他们没理清你的真实需求:你是想“完全隐藏”还是“精选展示”?是“静态页”还是“动态查询”?

现在,你手里有三套方案:

  1. 零代码静态页:最简单,适合绝大多数企业官网。
  2. 插件精选展示:灵活,适合内容型网站。
  3. 代码定制查询:最干净,适合有开发资源的团队。

选对方案,10 分钟搞定,比找外包快 100 倍。

当然,建站是个系统工程,从域名解析到服务器配置,从前端代码到后端数据库,每一步都有坑。

还有什么建站疑问?评论区留言挨个回。 不管是 WordPress 报错、Nginx 配置,还是 SSL 证书续费,别憋着,问出来才是真懂。