author 系のテンプレートタグを使えば、たぶんプラグインはいりません。そもそも、所望の動作をするプラグインはたぶん存在しないでしょう (プラグインは万能ではありません)。
やり方としては、各 author ごとの最新記事1件を取ってきて、日付順に並べ直し、新しいものから必要な数だけ残すのが早いでしょうか。
いや、データベースクエリーを投げた方がシンプルですね。 (先頭10人を取る場合)
$wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND post_date <= NOW() GROUP BY post_author ORDER BY post_date DESC LIMIT 10");
# GROUP BY post_author がポイント
あとは、得られた投稿 ID に対して query_posts() してループを回せばいいでしょう。
lilyfan さん有り難うございます。
phpを全然解ってないですが、頂いた答えを基に勉強してひも解いててみます。
出来上がったら報告致します!
有り難うございましたm(_ _)m
すみません。無知なりにデータベースクエリーを
調べてみたのですが、調べる手だてさえわかりませんでした。
よかったらまた教えて下さいm(_ _)m
■ 通常のタイトルだけ取得
<?php require(‘./blog/wp-blog-header.php’); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php the_title(); ?>
<?php endwhile; else: ?>
<?php_e(‘sorry, no posts matched your criteria.’); ?>
<?php endif; ?>
これに $wpdb->get_results や query_posts() など
どこに挿入すればいいのですか?
ほんと初心者ですみませんっ。
wp-blog-header.php を require するということは、WordPress の固定ページやテンプレートで実現するのではなく、独立した php ファイルを作るということですね。
こうするよりは、固定ページを作って、それに専用のページテンプレートを割り当てた方がスムーズです。で、そのテンプレートに以下のようなコードを入れれば OK です。$posts のデータ構造によっては、そのまま foreach できないかもしれません (print_r($posts) してデータ構造を見てみてください)。
$posts = $wpdb->get_results(..., ARRAY_N);
foreach ($posts ad $id) {
query_posts("p=$id");
if (have_posts()) {
the_post();
the_title();
}
}
query_posts は、投稿 ID を入れる場合は1つしか見てくれないようで、ループの中で毎回呼ばないと動きません。
lilyfan さん、またお返事本当に有り難うございます!
ちょっと知識がなさ過ぎてよくわかってません。
勉強してやってみたいと思います!
有り難うございました。
MySQLを勉強して解決できました!
# GROUP BY post_author に対して、post_author 以外が SELECT できないこと(私が要求していることが出来ない)が解りました。なので 副問い合わせ? でトライしてみましたが、サーバーのMySQL のバージョンが3だったので、一度別のテーブル(table_b)に書き出し、それをJOINしました。
DELETE FROM table_b
INSERT table_b
SELECT post_author,MAX(post_date) AS post_date
FROM $wpdb->posts
WHERE post_status = 'publish' AND post_date <= NOW()
GROUP BY post_author
ORDER BY post_date DESC
LIMIT 10
SELECT *
FROM $wpdb->posts
INNER JOIN table_b
ON $wpdb->posts.post_date = table_b.post_date
ORDER BY $wpdb->posts.post_date DESC
こんな流れで目的を達成しました。
あってますでしょうか・・・。
lilyfan さん、本当に有り難うございます!
一つ一つひも解けて勉強になりました。
ゼロの状態から質問してしまってすみませんでした。