Exibir Autor Aleatório com Detalhes na Barra Lateral

O novato do PHP aqui, recentemente decidiu ter uma facada em cobbling juntos um kooky pouco ‘Random Author Spotlight’ recurso no meu tema atual WordPress. Eu quase terminei, mas eu acertei um pouco: eu preciso fazê-lo de alguma forma para que meu “foco” só selecione usuários com 1 post ou mais.

Todo mundo que se inscreva no meu blog imediatamente se torna um Assinante e é capaz de publicar notícias diretamente na primeira página, mas a maioria está contente com apenas ser membros regulares e pós-menos.

Só poderei incorporar o “holofote” no meu tema se puder conseguir que ele selecione aleatoriamente um usuário que enviou 1 post ou mais.

Aqui está o código até agora:

Hey, have you met...

<a class="" href="https://wordpress.stackexchange.com//questions/91320/display-random-author-with-details-in-sidebar/">display_name; ?>

ID, '60' ); ?>
Mods: ID); ?>
    $user->ID,'posts_per_page' => '5')); if ($random_author_box->have_posts() ) : while ($random_author_box->have_posts() ) : $random_author_box->the_post(); ?>
  1. <a class="sidebarPostTitle" href="https://wordpress.stackexchange.com//questions/91320/display-random-author-with-details-in-sidebar/">

Idealmente, eu também adoraria poder ajustar a data de cadastro para alguns “X registrados há uns dias”, mas estou feliz em atravessar essa ponte mais tarde. No momento, estou com necessidade desesperada de obter o código acima para filtrar usuários com 0 posts e apenas puxar usuários – ou melhor, um usuário – com 1 ou mais postagens.

Se alguém pudesse ajudar, ficaria tão eternamente grato. Como alguém que agora está apenas começando a aprender os conceitos básicos do PHP, posso dizer honestamente que eu estou no topo da minha cabeça neste momento. Estou ansioso para ouvir de vocês e obrigado cada um por ler e olhar para a minha situação. Ai é eu!

Edit: Eu sou tão bobo! Provavelmente, eu deveria explicar o que o código acima faz : o código acima exibe um usuário random e fornece-lhes uma área “spotlight” na barra lateral, mas ele irá puxar os usuários mesmo com uma contagem de postagem de 0. Como explicado anteriormente: se ele puxasse apenas usuários com uma contagem de posts de 1 ou mais, seria quase sem falhas.

Solutions Collecting From Web of "Exibir Autor Aleatório com Detalhes na Barra Lateral"

Sua melhor opção é obter um autor de publicação random que é uma ID de usuário, então aqui é uma function para fazer exatamente isso:

 function get_random_author_wpa91320(){ global $wpdb; $id = $wpdb->get_var(" SELECT post_author FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY RAND() LIMIT 1 "); return $id; } 

E uma vez que você tenha essa function no arquivo functions.php do seu tema, você pode replace esta linha:

 < ?php $users = get_users(); $id = array_rand( $users, 1 ); $user = $users[$id]; ?> 

com

 < ?php $user = get_user_by('id', get_random_author_wpa91320() ); ?> 

Atualizar

aqui está uma versão modificada para obter todos os usuários do database que têm pelo menos na postagem e usam o PHP rand para retornar um ID random

 function get_random_author_wpa91320_2(){ global $wpdb; //this will get all users with posts $ids = $wpdb->get_col(" SELECT DISTINCT post_author FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' " ); return $ids[rand(0,count($ids) -1)]; } 

Desta forma, é como você conta todos os usuários uma vez e não com base no número de postagem que ele possui.