メディアにアップした画像全てを表示させたい。
-
固定ページで指定したテンプレートでメディアにアップロードした画像を全て一覧で表示し、画像が掲載されている記事のタイトルやカスタムフィールドに記述した文字も表示させたいのですが、
何か参考になるサイトや方法はありますでしょうか?(プラグインなしで作りたいです。)
CSSとhtmlの知識はそれなりにあります。
-
このトピックは
yunyun yunkoが7年、 2ヶ月前に変更しました。
-
このトピックは
yunyun yunkoが7年、 2ヶ月前に変更しました。
-
このトピックは
-
WordPressのギャラリー機能はだめでしょうか。
参考:https://manablog.org/wordpress-gallery-plugin/これで不十分となると、データベースとPHPプログラミングの知識が必要かなと思います。
(もしかして他の方法があるかもしれません、私が知らないだけで)まずメディアにアップロードされた画像のURL取得は
https://www.webantena.net/wordpress/wp-get-attachment-url/
あたりにサンプルがありますね。これで単に画像を一覧表示するならいけるかなと思います。
ただし他の情報をいろいろ取りたいなら
https://unskilled.site/wordpress%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E8%A8%98%E9%8C%B2%E3%81%95%E3%82%8C%E3%81%A6/
あたりのメディアデータがどのようにデータベースに保存されていて、これをどう WordPress から取り出すのかを考える必要があるかなと思います。データベースの wp_posts データから WP_Query 関数などを使って
post_type=attachment
post_mime_type=image
の条件にマッチするデータを拾ってくれば、画像だけのデータは抜き出せるかなと思います。画像のIDさえわかれば、いろいろな関数があるので、それも使えるかもしれません。
ありがとうございます。ギャラリー機能も考えたのですが、投稿ページで画像つきで記事を投稿したら画像図鑑ページみたいなところに画像が追加されるみらいな事は可能なのでしょうか?教えていただいたサイトも参考にしてもう1度検索と勉強をしてみます。
画像のIDも関数も調べてみます。こんにちは、
メディアファイルには、投稿に紐づいた画像 ファイル だけでなく、投稿に紐づいていない画像やメディアも存在します。
画像が掲載されている記事のタイトルやカスタムフィールドに記述した文字も表示させたいのですが
ということは、添付画像のアーカイブを作りたいということですか?
であれば、カスタム投稿タイプ attachment から アーカイブ機能を有効にするなどといった事になるかもしれないですね。
ありがとうございます。
そうです。添付画像のアーカイブを作りたいんです。
アーカイブ機能の有効化ですか、調べてみます。
カスタム投稿タイプは少し使った事があります。こんな感じで、表示できるかも、
add_filter( 'register_post_type_args', 'rd_change_default_post_type_args', 10, 2 ); function rd_change_default_post_type_args( $args, $post_type ) { if ( $post_type == 'attachment' ) { $args[ 'has_archive' ] = true; $args[ 'rewrite' ] = array( 'slug' => 'attached' ); } return $args; } add_action( 'pre_get_posts', 'rd_attachment_archve_post_status' ); function rd_attachment_archve_post_status( $wp_query ) { if ( !is_admin() && $wp_query->is_main_query() ) { if ( !is_singular() && $wp_query->get( 'post_type' ) == 'attachment' ) { $wp_query->set( 'post_status', 'inherit' ); } } }ありがとうございます。試してみます。functionに追加すればいいのでしょうか?そして固定ページに表示したいのですが、出力はどのように記述すればよいのでしょうか?初心者なのに難しいことを質問してしまってすいません。
-
この返信は7年、 2ヶ月前に
yunyun yunkoが編集しました。
functions.php で OK
これの場合は、わざわざ固定ページを作らなくても大丈夫です。
たぶん
サイトのURL/attached/で表示できると思います。ありがとうございます。
サイトのURL/attached/にした場合、レイアウトやデザインなどはどうなってしまうのでしょうか?アーカイブのテンプレートをいじればいいのでしょうか?聞いてばかりですみません。試してみました。アクセスしてみたところ「こちらには何もありません。検索をお試しください。」と出て画像はなにも表示されませんでした。こちらでも色々試したり調べてみます。
https://tenman.info/labo/snip/archives/8850
と同じコードのような気がします。そこの注意事項をチェックしてみてはと思います。
ありがとうございます。見てみます。
画像を全て表示する事ができましたが、CSSなどはアーカイブテンプレートをいじればいいのでしょうか?
また、このやり方だと画像を直接リンクしているのですが、そうではなく画像が添付してある記事に飛ぶようにはできないのでしょうか?
私も鋭意調査しています。
アーカイブのテンプレートを変更したらCSSが反映されました。
何度もすみません。あと情報を小出しにしているようで申し訳ないのですが、
一覧で表示したい画像は投稿記事に添付されたものだけにしたいのですが、可能でしょうか。
post_parent に親記事のIDが入っているかどうかの条件を加えたらどうかなぁと思います。
if ( !is_singular() && $wp_query->get( 'post_type' ) == 'attachment' ) {の部分を
if ( !is_singular() && $wp_query->get( 'post_type' ) == 'attachment' && ( isset($wp_query->get( 'post_parent' )) && is_single($wp_query->get( 'post_parent' )) ) ) {な感じにしてみるとか
-
この返信は7年、 2ヶ月前に
トピック「メディアにアップした画像全てを表示させたい。」には新たに返信することはできません。