query post by author gender

时间:2016-04-21 作者:user2882154

我正在我的网站上使用utimate成员插件。对于每个成员(作者),我有一个字段来存储成员性别。(男/女)。

数据存储在我的数据库中,在wp\\u usermeta中。

元键是“性别”,元值是“男人”或“女人”。

enter image description here

我正在尝试编写一个wp查询,以显示所有作者的所有帖子,但只显示“Homme”作者,另一个只显示“Femme”。

以下是我的wp查询,用于显示所有帖子,无需按性别筛选:

<?php $custom_query_args = array(

    \'post_type\' => \'post\', 
    \'posts_per_page\' => -1,
    \'post_status\' => \'publish\',
    \'order\' => \'DESC\',
    \'orderby\' => \'date\',
);
$custom_query = new WP_Query( $custom_query_args ); ?>
工作正常。

这是我到目前为止尝试只从“男人”性别获得的帖子,但它不起作用。。。我想我需要在某个地方添加对post-author ID的引用,但我找不到解决方案。

<?php $custom_query_args = array(

    \'post_type\' => \'post\', 
    \'posts_per_page\' => -1,
    \'post_status\' => \'publish\',
    \'meta_query\'             => array(
    array(
              \'key\' => \'gender\',
            \'value\' => \'Homme\',
            \'compare\' => \'=\'
    ),
  ),
    \'order\' => \'DESC\',
    \'orderby\' => \'date\',
);
$custom_query = new WP_Query( $custom_query_args ); ?>
我不知道是否有一种方法可以通过插件本身来实现,但我很确定可以通过一个简单的wp查询来实现。

有人能帮我吗?

谢谢

这是我尝试过的,它显示了作者的ID,即“Homme”。

<?php
$blogusers = get_users( array( 
  \'meta_key\'     => \'gender\',
  \'meta_value\'   => \'Homme\',
  \'meta_compare\' => \'=\'
  ) ); ?>

<?php foreach ( $blogusers as $user ) {
  echo \'<span>\' . esc_html( $user->ID ) . \'</span>\';
}

?>
工作正常。

我不知道怎么做,就是在我的post查询中存储这个用户查询中的作者ID,然后像这样在我的查询中使用这些ID

数组(\'author\'=>\'2,6,17,38\'))

其中,“2,6,17,38”应为作者的ID。

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

如果我没弄错的话,您正在将这些数据存储在用户元数据中。WP_Query 根本不知道如何检索,因为它只知道post元数据。这两者是完全独立的,没有原生的方式让一方参与另一方的查询。

您可能需要分两步进行:

使用get_users() 检索不同性别的所有作者的ID使用author__in 的参数WP_Query 限制此类作者发表文章目前为止,您所取得的成果:

$blogusers = get_users( array( 
  \'meta_key\'     => \'gender\',
  \'meta_value\'   => \'Homme\',
  \'meta_compare\' => \'=\',
   \'fields\' => \'ID\',
  ) );

$custom_query_args = array(

    \'post_type\' => \'post\', 
    \'posts_per_page\' => -1,
    \'post_status\' => \'publish\',
    \'author__in\' => $blogusers,
    \'order\' => \'DESC\',
    \'orderby\' => \'date\',
);
$custom_query = new WP_Query( $custom_query_args ); ?>

相关推荐

set a user-meta key as avatar

我有一个名为“meta kay”的用户;阿凡达;;此值包含用户上载的图像的URL。如何将此元值设置为用户化身?我使用此代码,但不工作add_filter( \'get_avatar\', \'slug_get_avatar\', 10, 5 ); function slug_get_avatar( $avatar, $id_or_email, $size, $default, $alt ) { //If is email, try and find user ID