为了账号安全,请及时绑定邮箱和手机立即绑定

WordPress:根据元字段列出带有 AZ 列表的作者

WordPress:根据元字段列出带有 AZ 列表的作者

PHP
MM们 2023-09-15 17:23:36
我想列出所有作者并从 AZ 订购。问题是,我需要通过自定义元字段而不是它们的显示名称来对它们进行排序。如果我按作者的显示名称对作者进行排序,则一切正常。但如果我尝试通过自定义字段订购它们,AZ 列表将不再起作用。对于上下文:我正在使用 WooCommerce 插件 WC Vendors,作者有一个商店名称,我想将其用作订购的参考。这是我当前的代码:$display_admins = false;$order_by = 'display_name'; // 'nicename', 'email', 'url', 'registered', 'display_name', or 'post_count'$role = 'vendor'; // 'subscriber', 'contributor', 'editor', 'author' - leave blank for 'all'$avatar_size = 32;$hide_empty = true; // hides authors with zero posts$last = '';if(!empty($display_admins)) {    $blogusers = get_users('orderby='.$order_by.'&role='.$role);} else {    $admins = get_users('role=administrator');    $exclude = array();    foreach($admins as $ad) {        $exclude[] = $ad->ID;    }    $exclude = implode(',', $exclude);    $blogusers = get_users('exclude='.$exclude.'&orderby='.$order_by.'&role='.$role);}$authors = array();foreach ($blogusers as $bloguser) {    $user = get_userdata($bloguser->ID);    if(!empty($hide_empty)) {        $numposts = count_user_posts($user->ID, 'product');        if($numposts < 1) continue;    }    $authors[] = (array) $user;}echo '<ul class="contributors">';foreach($authors as $author) {    //$display_name         = $author['data']->display_name;    //$avatar           = get_avatar($author['ID'], $avatar_size);    //$author_profile_url = get_author_posts_url($author['ID']);    $vendor_shop_name           = get_user_meta( $author['ID'], 'pv_shop_name', true );    $vendor_shop_desc           = get_user_meta( $author['ID'], 'pv_shop_description', true );    $vendor_shop_keyvsiual      = get_user_meta( $author['ID'], 'vendor_keyvisual', true );    $vendor_shop_icon_id        = get_user_meta( $author['ID'], '_wcv_store_icon_id', true );    $vendor_shop_link           = WCV_Vendors::get_vendor_shop_page( $author['ID'] );正如你所看到的,我已经尝试更改$current为元字段pv_shop_name 。我将字符串减少到第一个字母。效果很好,但由于某种原因,排序不再起作用。Ö如果商店名称以例如开头,我发现特殊字符存在问题。我在这里没有看到问题。$order_by = 'display_name';也许和一开始有什么关系?但我怎样才能改变这一点呢?
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

我想到了。

我必须将其更改$oderby为:

$order_by = 'meta_value';

我必须meta_key=pv_shop_name添加$blogusers

$blogusers = get_users('meta_key=pv_shop_name&exclude='.$exclude.'&orderby='.$order_by.'&role='.$role);

现在效果很好。


查看完整回答
反对 回复 2023-09-15
  • 1 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信