私はワードプレスの作家を利用して、複数のユーザーからランダムに1人の作家を選択し、その1人のユーザーの情報だけを表示するスポットライトブロックをサイドバーに作成します。私は作者の表示名、サムネイル、彼らの略歴の抜粋、そして完全な作者ページへのリンクを含めたいと思います。これをサポートするプラグインが見つかりませんでした。私はPHP/MySQLの魔法使いではないので、関数をカスタムで書くことは私の能力の範囲外ですが、それを読んでコードに従うことはできます。私がこれまでに持っているのは、
<?php
global $wpdb;
$ids = $wpdb->get_results( "SELECT {$wpdb->usermeta}.user_id from {$wpdb->usermeta} where ({$wpdb->usermeta}.meta_key='wp_capabilities') and ({$wpdb->usermeta}.meta_value >0 )" );
$user_id = Rand(1,count($ids));
$wpdb->show_errors();
?>
<h2><?php get_the_author_meta( 'display_name', $user_id ); ?></h2>
<img class="left" src="" alt="<?php print $selected_user; ?>" />
<p><?php get_the_author_meta( 'user_description', $user_id ); ?> <a href="<?php get_the_author_meta( 'user_url', $user_id ); ?>">read more</a>
これは配列を返しますが、必要な出力を取得するために何をすればよいかわかりません。前もって感謝します。
カスタムSQLクエリの代わりにget_users()
を使用すれば、これから多くのステップを切り取ることができます。それからarray_Rand()
(ネイティブPHP関数、wordpress関数ではありません)を使ってその配列からランダムなユーザーを選択することができます、そしてそれはあなたが使うべきであるキーを返します。これが例です:
$users = get_users( $your_params );
$id = array_Rand( $users, 1 );
$user = $users[$id];
これは$user
であなたを残すでしょう、それはちょうどあなたがユーザーに望むことができるすべてのものを含むユーザーオブジェクトを含むでしょう…少なくともあなたが必要とするものを得る能力。 get_avatar()
はサムネイルを表示します...デフォルトが欲しいと仮定します。