こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【WordPress】メディアの一覧出力

お世話になってます。
WordPressのメディアライブラリの一覧を簡単なリストとして、
固定ページなどに表示させたいのです。

管理画面のメディアページにある一覧と似たようなものを
表にだせればなぁと思うのですが、そういった出力するプラグイン、
cordの記述方法などあれば助言などいただければと思います。

思いつくのは、テーマのpage.phpの中身を仮にmedia_list.phpとしてコピー作成して、
これをテンプレートとして固定ページを作るというのがよいかと思いました。
こちらにメディアライブラリ一覧を取得できるようなコードを書けばいいのかなぁ~
とか思っていたのですが、どうにもわかりませんでした・・・
そもそもログインしていないユーザーからメディアライブラリ一覧なんて
見せる事はできないのでしょうか・・・
どなたかご教授いただければと思います。

※結果的にやりたいことは、メディアライブラリにアップされた*.MP3だけを
表の固定ページにリストとして列挙させたいと思っております。
アップしたユーザー名、日付、タイトル、ファイルのリンクがリストの形式でズラーっと並べば・・・

投稿日時 - 2012-02-25 16:37:30

QNo.7326584

すぐに回答ほしいです

質問者が選んだベストアンサー

<?php
foreach($myposts as $post) :
setup_postdata($post); // 追加
?>
<li><?php the_attachment_link($post->ID, false); ?> (<?php the_time('Y.n.j'); ?>)</li>
<?php
endforeach;
wp_reset_postdata(); // 追加
?>

とやると、the_author(); でも出てくると思います。

投稿日時 - 2012-02-27 10:21:12

補足

<TABLE border="1">
<TBODY>
<?php
$myposts = get_posts('post_type=attachment&post_mime_type=audio&posts_per_page=-1&orderby=author');
foreach($myposts as $post) :
setup_postdata($post);
?>

<TR><TD width="50%"><?php printf( _x( ' %s', 'Post written by...', 'buddypress' ), bp_core_get_userlink( $post->post_author ) ) ?></TD> <TD width="50%"><?php the_attachment_link($post->ID, false); ?></TD> <TD width="100"><?php the_time('Y.n.j'); ?></TD></TR>

<?php
endforeach;
wp_reset_postdata();
?>
</TBODY>
</TABLE>

こんな感じでうまくいけました。
バディプレス使っているので上記のような形になりました。
ほんと助かりました、ありがとうございます^^

投稿日時 - 2012-02-27 22:00:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

メディアもポストとして管理されているはずなので get_posts で取得できると思います。

$my_posts = get_posts('post_type=attachment&post_mime_type=audio/mpeg&posts_per_page=-1);
あとは、通常のポストと同じようにループで処理

※mp3 の post_mime_type が audio/mpeg が正しいかどうかはやったことないのでわかりません。

投稿日時 - 2012-02-27 00:08:35

補足

ご回答ありがとうございます。
教えていただいた内容でなんとなーく近くなってきました。

<ul>
<?php
$myposts = get_posts('post_type=attachment&post_mime_type=audio&posts_per_page=-1&orderby=author');
foreach($myposts as $post) : ?>
<li><?php the_attachment_link($post->ID, false); ?> (<?php the_time('Y.n.j'); ?>)</li>
<?php endforeach; ?>
</ul>

こんな感じでやってみているのですが、以下のように出力されます。

・TestBGM_01 (2012.2.20)
・TestBGM_02 (2012.2.18)
・TestBGM_03 (2012.2.27)

この上記のTestBGM_~はMP3なのですが、各ファイル製作者(アップロードユーザー)が
異なり、このファイル名の手前などに製作者の名前をつけたいのです。

<?php the_author(); ?>

これだとこの固定ページの製作者であるユーザー名が表示されてしまい、
うまくいきませんでした。
各メディアファイルの投稿者を取得するにはどのような記述が正しいでしょうか。。

投稿日時 - 2012-02-27 02:48:25

あなたにオススメの質問