首页 > 解决方案 > Wordpress – 按元值按字母顺序对帖子进行排序

问题描述

我有一个自定义帖子类型的产品,每个产品都属于一个产品类别。我正在尝试查询产品以使所有产品按其产品类别的字母顺序排序,即

第一
产品:狮子
类别:动物

上一篇:
产品: 雪地摩托
类别: 冬季

我正在为产品类别使用自定义字段,但我的查询没有按字母顺序对它们进行排序,而是按它们的发布日期排序。product_cat_meta 字段是在自定义字段中设置的常规文本字段。查询在这里:

function get_products()
{


  $args = array(
    'post_type' => 'products',
    'post_status' => 'publish',
    'meta_key' => 'product_cat_meta',
    'orderby' => 'meta_value',
    'order' => 'ASC',
    'posts_per_page' => -1
  );

  $products = new WP_Query($args);    
  if ($products->have_posts()) {
    $index = 0;
    while ($products->have_posts()) {
      $products->the_post();

      $prod_meta = get_field('product_cat_meta');
      echo $prod_meta;

      );
      $index++;
    } // end while
  } // end if
}

这个查询的结果只是按照它们在 wordpress 中设置的方式返回 prod 类别——最新的帖子在前,但不按字母顺序排序

标签: phpmysqlwordpress

解决方案


您可以尝试将代码放在functions.php 文件中。

如果您愿意,可以将代码放入当前主题的 functions.php 中:

function get_products()
{
  $args = array(
    'post_type' => 'products',
    'post_status' => 'publish',
    'meta_key' => 'product_cat_meta',
    'orderby' => 'title',
    'order' => 'ASC',
    'posts_per_page' => -1
  );

  $products = new WP_Query($args);    
  if ($products->have_posts()) {
    $index = 0;
    while ($products->have_posts()) {
      $products->the_post();

      $prod_meta = get_field('product_cat_meta');
      echo $prod_meta;

      );
      $index++;
    } // end while
  } // end if
}

获取更多详细信息,请点击链接:https ://codex.wordpress.org/Alphabetizing_Posts


推荐阅读