• 解決済 yunyun yunko

    (@ryuunosuke1018)


    固定ページで指定したテンプレートでメディアにアップロードした画像を全て一覧で表示し、画像が掲載されている記事のタイトルやカスタムフィールドに記述した文字も表示させたいのですが、

    何か参考になるサイトや方法はありますでしょうか?(プラグインなしで作りたいです。)

    CSSとhtmlの知識はそれなりにあります。

    • このトピックはyunyun yunkoが5年、 11ヶ月前に変更しました。
    • このトピックはyunyun yunkoが5年、 11ヶ月前に変更しました。
15件の返信を表示中 - 1 - 15件目 (全27件中)
  • 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さえわかれば、いろいろな関数があるので、それも使えるかもしれません。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。ギャラリー機能も考えたのですが、投稿ページで画像つきで記事を投稿したら画像図鑑ページみたいなところに画像が追加されるみらいな事は可能なのでしょうか?教えていただいたサイトも参考にしてもう1度検索と勉強をしてみます。
    画像のIDも関数も調べてみます。

    こんにちは、

    メディアファイルには、投稿に紐づいた画像 ファイル だけでなく、投稿に紐づいていない画像やメディアも存在します。

    画像が掲載されている記事のタイトルやカスタムフィールドに記述した文字も表示させたいのですが

    ということは、添付画像のアーカイブを作りたいということですか?

    であれば、カスタム投稿タイプ attachment から アーカイブ機能を有効にするなどといった事になるかもしれないですね。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。

    そうです。添付画像のアーカイブを作りたいんです。
    アーカイブ機能の有効化ですか、調べてみます。
    カスタム投稿タイプは少し使った事があります。

    こんな感じで、表示できるかも、

    
    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' );
    		}
    	}
    }
    
    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。試してみます。functionに追加すればいいのでしょうか?そして固定ページに表示したいのですが、出力はどのように記述すればよいのでしょうか?初心者なのに難しいことを質問してしまってすいません。

    • この返信は5年、 11ヶ月前にyunyun yunkoが編集しました。

    functions.php で OK

    これの場合は、わざわざ固定ページを作らなくても大丈夫です。

    たぶん サイトのURL/attached/ で表示できると思います。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。サイトのURL/attached/にした場合、レイアウトやデザインなどはどうなってしまうのでしょうか?アーカイブのテンプレートをいじればいいのでしょうか?聞いてばかりですみません。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    試してみました。アクセスしてみたところ「こちらには何もありません。検索をお試しください。」と出て画像はなにも表示されませんでした。こちらでも色々試したり調べてみます。

    https://tenman.info/labo/snip/archives/8850
    と同じコードのような気がします。

    そこの注意事項をチェックしてみてはと思います。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。見てみます。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    画像を全て表示する事ができましたが、CSSなどはアーカイブテンプレートをいじればいいのでしょうか?

    また、このやり方だと画像を直接リンクしているのですが、そうではなく画像が添付してある記事に飛ぶようにはできないのでしょうか?

    私も鋭意調査しています。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    アーカイブのテンプレートを変更したらCSSが反映されました。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    何度もすみません。あと情報を小出しにしているようで申し訳ないのですが、

    一覧で表示したい画像は投稿記事に添付されたものだけにしたいのですが、可能でしょうか。

    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' ))
    			    )
    		   ) {
    

    な感じにしてみるとか

15件の返信を表示中 - 1 - 15件目 (全27件中)
  • トピック「メディアにアップした画像全てを表示させたい。」には新たに返信することはできません。