メディアにアップした画像全てを表示させたい。
-
固定ページで指定したテンプレートでメディアにアップロードした画像を全て一覧で表示し、画像が掲載されている記事のタイトルやカスタムフィールドに記述した文字も表示させたいのですが、
何か参考になるサイトや方法はありますでしょうか?(プラグインなしで作りたいです。)
CSSとhtmlの知識はそれなりにあります。
- このトピックはyunyun yunkoが6年前に変更しました。
- このトピックはyunyun yunkoが6年前に変更しました。
-
何度もすいません。
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' && ( isset($wp_query->get( 'post_parent' )) && is_single($wp_query->get( 'post_parent' )) ) ) { $wp_query->set( 'post_status', 'inherit' ); } } }
このような形でいいでしょうか?
追加してみたところ、私がどこかミスしているのかもしれませんが、
wp-content/themes/twentyseventeen-child/functions.php ファイルの51行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。
となって保存ができなくなってしまいました。
ごめんなさい、issetが駄目でしたね。
下記のような感じですかねぇ。
やりたいことは、画像が投稿や固定ページ等に貼り付けられていたら、post_parentにその投稿や固定ページの IDが保存される。このIDが投稿かどうかを判定することで、投稿に貼り付けられているか判断するって感じです。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' && ( !empty($wp_query->get( 'post_parent' )) && get_post_type($wp_query->get( 'post_parent' )) == 'post' ) ) { $wp_query->set( 'post_status', 'inherit' ); } } }
返信おくれてすいません。通知が来ていませんでした。試してみます。ありがとうございます。
それから画像を固定ページで表示させる場合はpost_parentを使用すればいいということでしょうか?
ちなみに下記は、全記事を一覧で表示し、記事のタイトル、アイキャッチ画像、カテゴリー名、投稿者を表示するコードは作ったのですが、
これを利用してみますが、ここのpost_parentを使っても問題ないでしょうか。'posts_per_page' => 14, 'paged' => $paged, 'post_type' => array('post','カスタム投稿01','カスタム投稿02'), 'post_status' => 'publish' ); $the_query = new WP_Query($args); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <div class="box"> <p class="textP"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br><span class="postDate"><?php echo get_the_date( $format, $post ); ?></span><span class="writeName"><?php the_author(); ?></span></p> <p class="imgP"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a></p> </div> <?php endwhile; ?> <?php else: ?> <?php endif; ?>
アイキャッチは表示せずに画像と画像が貼り付けてある記事のタイトル、著者名、カテゴリー名を表示させたいのです。
こちらでも調べて色々と試してみます。- この返信は6年前にyunyun yunkoが編集しました。
示されたコードから予想すると、それぞれの記事から記事内の画像情報を抜き出したいのでしょうか。
それなら、各記事のIDは、get_the_ID(); で取得できますから、あとは get_attached_media 関数で各記事内の画像データの情報をとれるので、それを使えばいいのでないかと思います。
説明が下手ですみません。
ギャラリーを作る事ができると思いますが、そんな感じで様々な記事にある画像全てを一覧で表示させて、
その画像がどの記事の画像なのかが記事のタイトルでわかるようにしたいのです。端的にいうとこの画像はどの記事に添付されているものかが知りたいのです。そして画像と紐づけたいのです。よろしくお願い致します。
問題の解決方法を書きましたが、
この投稿は自動化システムにより承認待ちとなっています。モデレーターが手動でレビューします。
となってしまったので、表示されませんが、親切な管理人の方が見つけてくれれば、表示されるかもしれません
あら、そうですか・・・待ちます!ありがとうございました!
投稿に紐づいたものだけを表示する方法は、以下のリンクに追加しました。
https://tenman.info/labo/snip/archives/8850
投稿へのリンクが表示されない件は、アタッチメントアーカイブ?を表示するときに使用される、テンプレートに、投稿へのリンクやカスタムフィールドを記述すればいいと思います。
テンプレート階層でいうと、image.php 等がそれに該当します。(確認してないので、詳しくは調べてくださいね)
post_parentに投稿IDが入っているので、それを使えばいいです。
- トピック「メディアにアップした画像全てを表示させたい。」には新たに返信することはできません。