WordPress 如何修改产品显示顺序

本文介绍了调整WordPress自定义文章类型产品显示顺序的三种方法。最推荐使用内置menu_order字段,需在注册时启用page-attributes支持,并修改前端查询按menu_order排序。也可使用拖拽排序插件简化操作,或通过ACF创建自定义排序字段。方法一代码轻量,方法二操作直观,方法三适用于复杂排序逻辑。建议根据需求选择合适方案。

WordPress基础教程
阅读时间: 20 分钟
最后更新时间:2025年11月19日

对于使用 WordPress ​​自定义文章类型(Custom Post Type)​​ 创建的产品,调整其显示顺序的方法与标准的文章或 WooCommerce 产品类似,但需要一些特定的调整。

核心原理依然是利用 WordPress 内置的 menu_order字段和对应的查询参数。以下是为您量身定制的几种方法:

方法一:使用原生“菜单顺序”字段(最推荐)

这是最核心和灵活的方法,无需插件。

第1步:为自定义文章类型启用“菜单顺序”支持

首先,您需要确保在注册自定义文章类型时,开启了 page-attributes支持。这会在文章编辑页面显示“菜单顺序”输入框。

请检查您的主题的 functions.php文件中注册自定义文章类型的代码。它应该包含 'supports'参数,并且其中包含 'page-attributes'

// 注册自定义文章类型的示例代码
function create_my_product_cpt() {
    $args = array(
        'label' => '产品',
        'public' => true,
        'has_archive' => true,
        'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes' ), 
        // 确保有 'page-attributes',这样才能有菜单顺序字段
        // ... 其他参数
    );
    register_post_type( 'my_product', $args ); // 'my_product' 是您的文章类型名称
}
add_action( 'init', 'create_my_product_cpt' );

如果之前没有添加,添加上面那行代码后,需要重新保存一遍固定链接设置(设置 > 固定链接 > 直接点击“保存更改”)来刷新 rewrite rules。

第2步:编辑产品并设置顺序

现在,在您自定义的“产品”文章编辑页面右侧的“发布”元盒中,点击齿轮图标,您应该能看到 ​​“菜单顺序”​​ 输入框。

  • •为每个产品输入一个数字。
  • •​​规则​​:数字越小,排序越靠前(例如,0 排在 10 前面)。

第3步:修改前端查询以使用菜单顺序

这是最关键的一步。您需要修改前端显示产品列表的查询,告诉它按照 menu_order来排序。

​情况A:如果您使用主题自带的存档页面(Archive Page)​

例如,访问 yoursite.com/my_product会列出所有产品。您需要在主题的 functions.php文件中添加以下代码:

// 修改主查询,让自定义文章类型存档页按菜单顺序排序
add_action( 'pre_get_posts', 'modify_my_product_archive_order' );
function modify_my_product_archive_order( $query ) {
    // 判断是否在前台并且是主查询,防止影响后台和其他查询
    if ( is_admin() || ! $query->is_main_query() ) {
        return;
    }
    
    // 检查是否是您的自定义文章类型存档页
    if ( is_post_type_archive( 'my_product' ) ) { 
        // 将 'my_product' 替换为您的文章类型名称
        $query->set( 'orderby', 'menu_order' );
        $query->set( 'order', 'ASC' ); // ASC 升序,从小到大
    }
}

​情况B:如果您使用自定义页面模板或短代码调用产品​

如果您是在页面模板中使用 WP_Query来获取产品,直接在查询参数中指定即可:

$args = array(
    'post_type'      => 'my_product', // 您的文章类型名称
    'posts_per_page' => -1, // 显示所有产品
    'orderby'        => 'menu_order', // 按菜单顺序排序
    'order'          => 'ASC' // 升序排列
);
$products = new WP_Query( $args );

方法二:使用拖拽排序插件(最便捷)

如果您觉得手动输入数字太麻烦,插件依然是最佳选择。几乎所有修改文章顺序的插件都支持自定义文章类型。

​推荐插件​​:​​Intuitive Custom Post Order​​ 或 ​​Post Types Order​

  1. 1.安装并激活插件。
  2. 2.进入 WordPress 后台,找到您的自定义文章类型(例如,“产品”)。
  3. 3.在列表页面,插件通常会添加一个 ​​“拖拽排序”​​ 或 ​​“Order”​​ 的选项页签。
  4. 4.进入该页签,直接通过拖放来排序即可。插件会自动处理好背后的 menu_order值。

​优点​​:极其简单直观,非常适合管理大量产品。

​缺点​​:需要安装插件。


方法三:使用高级自定义字段(ACF)创建排序字段

如果您需要更复杂的排序逻辑(例如,除了手动排序外,还想结合另一个数字字段排序),可以使用 Advanced Custom Fields (ACF) 插件创建一个数字字段(如 sort_number),然后按该字段排序。

​查询示例:​

$args = array(
    'post_type' => 'my_product',
    'posts_per_page' => -1,
    'meta_key’ => 'sort_number', // ACF 字段名称
    'orderby’ => 'meta_value_num', // 按数字值排序(如果是日期就用 meta_value_date)
    'order’ => 'ASC'
);
$products = new WP_Query( $args );

总结建议

方法适用场景推荐度
​方法一:菜单顺序​希望代码轻量,保持网站纯净,愿意手动输入顺序值★★★★★
​方法二:拖拽插件​追求最高效率和直观操作,不介意多一个插件★★★★★
​方法三:ACF字段​排序逻辑复杂,需要与其他自定义字段联动★★★☆☆

​对于大多数用户,我的建议是:​

  • •先​​检查并确保您的自定义文章类型支持 page-attributes​。
  • •如果您不常调整顺序或产品不多,使用​​方法一​​。
  • •如果您需要频繁调整顺序,直接安装 ​​Intuitive Custom Post Order​​ 插件(方法二),这是最省时省力的方案。

WordPress独立站科普知识大全

这是我对于品牌独立站,尤其是WordPress建站的全部分享

WordPress独立站科普知识大全

这篇文章有用吗?

点击星号为它评分!

平均评分 5 / 5. 投票数: 3

到目前为止还没有投票!成为第一位评论此文章。

在AI里面继续讨论:

曾凤祥

曾凤祥

WordPress技术负责人
小兽WordPress凭借15年的WordPress企业网站开发经验,坚持以“为企业而生的WordPress服务”为宗旨,累计为10万多家客户提供高品质WordPress建站服务,得到了客户的一致好评。我们一直用心对待每一个客户,我们坚信:“善待客户,将会成为终身客户”。小兽WordPress能坚持多年,是因为我们一直诚信。

相关文章

如何让线上业务更上一层楼

还没有WordPress网站

还没有WordPress网站

不管你从事什么行业,WordPress都会为你提供一个专业的主题模板。在WordPress市场上有成千上万的免费主题,适合很多中小企业。

查看所有模板
已经有WordPress网站

已经有WordPress网站

小兽WordPress诚邀你一起学习WordPress,愿与各方携手升级改善您的WordPress网站,一起交流网站加速,网站优化等问题。

马上交个朋友
微信联系
chat 扫码联系
模板建站
挑选模板
网站定制
免费诊断
咨询热线
咨询热线

189-0733-7671

返回顶部