投稿にランダムな画像を1つ添付して、フロントページに表示しようとしています(更新時に表示される画像を変更します)。私が見たすべてのコードは、投稿ページのループ内から添付ファイルを表示する方法を示していますが、これは1つのページから添付ファイルを取得し、別のページに表示します。
私はこれについての出発点を実際に持っていないので、どんな助けも巨大になるでしょう。
投稿にランダムな画像を1つ添付して、フロントページに表示しようとしています(更新時に表示される画像を変更します)。私が見たすべてのコードは、投稿ページのループ内から添付ファイルを表示する方法を示していますが、これは1つのページから添付ファイルを取得し、別のページに表示します。
私はこれについての出発点を実際に持っていないので、どんな助けも巨大になるでしょう。
WP_Query
添付ファイルを直接クエリするために使用できます。実際には、添付ファイル専用の投稿タイプです。<img>
このコードは、ランダムな画像のタグを吐き出します。
$query = new WP_Query( array( 'post_status' => 'any', 'post_type' => 'attachment' ) );
$key = array_rand($query->posts, 1);
echo wp_get_attachment_image($query->posts[$key]->ID, 'medium');
文字列medium
は、ダッシュボードのメディアセクションで設定した別のサイズ、またはを使用してコードで設定したカスタムサイズに置き換えることができますadd_image_size()
。
テストされていませんが、これはデータベースから1行のみを取得する必要があり、WP_Query関数を最大限に活用します。
'full'
配列に置き換えることで、表示される画像のサイズを変更できます(例array(200, 130)
)。詳細については、コーデックスをwp_get_attachment_image()
確認してください。
$args = array(
'orderby' => 'rand',
'post_type' => 'attachment'
'post_status' => 'inherit',
'posts_per_page' => 1
)
$query = new WP_Query($args);
if($query->have_posts()) : while($query->have_posts() : $query->the_post();
echo wp_get_attachment_image(get_the_ID(), 'full');
endwhile;
wp_reset_postdata();
endif;