web-dev-qa-db-fra.com

Afficher la liste des auteurs avec le dernier message pas plus d'un mois

J'ai trouvé deux morceaux de code. On me reçoit des messages pas plus vieux qu'un mois, l'autre bit me donne une liste des auteurs et leurs champs personnalisés, noms, etc.

Quelqu'un peut-il m'aider s'il vous plaît à intégrer les deux. L'un tourne dans la boucle wordpress avec une requête personnalisée et l'autre est un foreach (tout ce dont je ne connais pas grand chose). Comment puis-je obtenir que les deux travaillent ensemble?.

Merci pour toute aide.

<?php
        $display_admins = false;
        $order_by = 'display_name';
        $role = ''; // 'subscriber', 'contributor', 'editor', 'author' - leave blank for 'all'
        $hide_empty = false;

        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);
                if($numposts < 1) continue;
            }
            $authors[] = (array) $user;
        }
<?php
            foreach($authors as $author) {
                $display_name = $author['data']->display_name;
                $main_profile = get_the_author_meta('mainProfile', $author['data']->ID);
                $hover_profile = get_the_author_meta('hoverProfile', $author['data']->ID);
                $author_profile_url = get_author_posts_url($author['ID']);
        ?>

            <div class="da-author">

                <div class="original-image">
                    <img src="<?php echo $main_profile; ?>" alt="<?php echo $display_name; ?>">
                </div>

                <div class="hover-image">
                    <a href="<?php echo $author_profile_url; ?>">
                        <img src="<?php echo $hover_profile; ?>">
                    </a>
                </div>

            </div>

        <?php}?>

Boucle:

<?php
            $args =  array(
                'showposts' => 1,
                'orderby' => 'date',
                'date_query' => array(
                    array(
                        'after' => array(
                            'year'  => date( "Y" ),
                            'month' => date( "m", strtotime( "-1 Months" ) ),
                            'day'   => date( "t", strtotime( "-1 Months" ) ),
                        ),
                        'inclusive' => true,
                    )
                )
            );
            $query = new WP_Query( $args );

            if ( $query->have_posts() ) {
                while ( $query->have_posts() ) {
                    $query->the_post();
        ?>

            <a href="<?php echo the_permalink(); ?>"><?php echo get_the_title(); ?></a>

        <?php }} ?>
2
wind_kind

Votre requête doit inclure un argument pour spécifier l'auteur et doit figurer dans l'une de vos boucles "auteur". En fait, je ne vois pas la nécessité de parcourir deux fois les données de votre auteur. Une fois ça devrait aller.

$display_admins = false;
$order_by = 'display_name';
$role = ''; // 'subscriber', 'contributor', 'editor', 'author' - leave blank for 'all'
$hide_empty = false;

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);
}

foreach($blogusers as $author) {
  $args =  array(
    'author' => $author->ID, // here is your author ID
    'showposts' => 1,
    'orderby' => 'date',
    'date_query' => array(
      array(
        'after' => array(
        'year'  => date( "Y" ),
        'month' => date( "m", strtotime( "-1 Months" ) ),
        'day'   => date( "t", strtotime( "-1 Months" ) ),
      ),
      'inclusive' => true,
      )
    )
  );
  $query = new WP_Query( $args );
  if ($query->have_posts()) {

    $display_name = $author->data->display_name;
    $main_profile = get_the_author_meta('mainProfile', $author->ID);
    $hover_profile = get_the_author_meta('hoverProfile', $author->ID);
    $author_profile_url = get_author_posts_url($author->ID); ?>

    <div class="da-author">

      <div class="original-image">
          <img src="<?php echo $main_profile; ?>" alt="<?php echo $display_name; ?>">
      </div>

      <div class="hover-image">
          <a href="<?php echo $author_profile_url; ?>">
              <img src="<?php echo $hover_profile; ?>">
          </a>
      </div>

    </div><?php
    // a post Loop
    while ($query->have_posts()) {
      $query->the_post();
      the_title();
      // etc.
    }
  }
}
1
s_ha_dum