質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1836閲覧

wordpressでタイトルに特定の文字列が含まれた画像を一覧取得し、ページ送りしたい。

dstrykn

総合スコア20

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/01/16 13:44

編集2019/01/17 18:18

wordpressでタイトルに特定の文字列が含まれた画像を一覧取得したい。
上記の質問をさせて頂き、ご回答のおかげで解決したのですが、ページ送りが必要になり、コードを編集してみたのですが動作しません。
(表示件数を「1」にすると、1ページ目と2ページ目が同じ内容(画像を全件取得)が表示されます。表示件数を「10」にすると、条件に当てはまる画像を全件取得を2回繰り返し、ページナビが表示されません。)
固定ページでテンプレートを選択し利用を考えており、ページ送りはWP-PageNaviを設定しています。
どこが間違っているか教えて頂けないでしょうか。
宜しくお願い致します。
(前回のページにまとめて書いたほうがよかったのかも知れませんが、解決済みにしてしまったので新たに質問をさせて頂きました。)

         <?php global $wpdb; $attachments = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' and post_title like '%%%s%%';",'abc' ) ); ?> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'posts_per_page' => 10, // 表示する記事数 'paged' => $paged, ); ?> <?php $wp_query = new WP_Query( $args ); ?> <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> <ul class="imageList"> <?php if( !empty( $attachments )):?> <?php foreach( $attachments as $attachment ):setup_postdata($attachment); ?> <li><?php echo wp_get_attachment_image( $attachment->ID ); ?></li> <?php endforeach; ?> <?php endif; ?> </ul> <?php endwhile; ?> <?php wp_reset_postdata(); ?>          <?php wp_pagenavi();?>

修正後

         <?php global $wpdb; $attachments = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' and post_title like '%%%s%%';",'abc' ) ); ?> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'posts_per_page' => 10, // 表示する記事数 'paged' => $paged, ); ?> <?php $wp_query = new WP_Query( $args ); ?> <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> <ul class="imageList"> <?php if( !empty( $attachments )):?> <?php foreach( $attachments as $attachment ):setup_postdata($attachment); ?> <li><?php echo wp_get_attachment_image( $attachment->ID ); ?></li> <?php endforeach; ?> <?php endif; ?> </ul> <?php endwhile; ?> <?php if(function_exists('wp_pagenavi')): wp_pagenavi(array('query'=>$wp_query)); ////wp_pagenavi()の呼び出し(ただし、引数の指定が必要!) endif; ?> <?php wp_reset_postdata(); ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

メインループ以外に設置する場合、ページナビ関数にクエリを渡してあげる必要があります。

WP-PageNaviの基本的な使い方と、不具合を出さないために覚えておきたい設定方法まとめ | WEMO

php

1<?php 2$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 3$args = array( 4 'post_type' => 'attachment', // 投稿タイプに"添付ファイル"(≒画像)を指定 5 'post_parent' => null, // 記事に添付されていない画像を含める 6 'post_status' => 'any', // 投稿ステータスを何でも含める 7 's' => 'abc', // 検索キーワード 8 'posts_per_page' => 10, // 表示する記事数 9 'paged' => $paged, 10 ); 11 12$wp_query = new WP_Query( $args ); 13if ($wp_query->have_posts()) : ?> 14 15<ul class="imageList"> 16 17 <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> 18 19 <li><?php echo wp_get_attachment_image( $post->ID ); ?></li> 20 21 <?php endwhile; ?> 22 23</ul> 24 25<?php if(function_exists('wp_pagenavi')): 26 wp_pagenavi(array('query'=>$wp_query)); ////wp_pagenavi()の呼び出し(ただし、引数の指定が必要!) 27 endif; 28endif; 29wp_reset_postdata(); 30?>

投稿2019/01/17 00:56

編集2019/01/18 02:10
CODEISLE

総合スコア251

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dstrykn

2019/01/17 18:19

ご回答ありがとうございます。教えて頂いたページを参考に、ページナビ関数にクエリを渡すコードを加えましたが、正常に作動しません。(コードを変更しました。) まだどこかおかしいのでしょうか。 表示件数を「1」にすると、1ページ目と2ページ目が同じ内容(画像を全件取得)が表示されます。表示件数を「10」にすると、条件に当てはまる画像を全件取得を2回繰り返し、ページナビが表示されません。
CODEISLE

2019/01/18 01:36

すみません、文脈をまったく考慮せずにプラグインの使い方だけをお伝えしてしまいました。 提示されたコードでは、投稿一覧を取得する(画像とは無関係)ループの中で、画像全件取得を繰り返しているだけになります。投稿が全2件なので、ループが2回回る分、画像全件取得が2回繰り返されているというわけです。 そして、wp_pagenavi()は投稿一覧を取得するループに対して動作しますので、画像一覧とは無関係です。 そもそも今回のケースでは通常のループではできない処理をしていますので、ページナビを実装するのは難しいと思います。 安易に回答したことを重ねてお詫びします。
CODEISLE

2019/01/18 02:12

検索キーワードを使って疑似的に同じことができないかと思いついたので、コードを追記してみました。 取り急ぎ書いたのでテストしていないですが…
dstrykn

2019/01/19 19:19

ご回答ありがとうございます。返信が遅くなり申し訳ございません。記載頂いたコードを試させて頂きましたが、「このページは動作していません」になります。 どこを修正すれば良いのか教えて頂けないでしょうか。よろしくお願い致します。
CODEISLE

2019/01/19 21:03

「このページは動作していません」の他にどんなエラーメッセージが出ているでしょうか? また、コードを元に戻すとエラーは消えるでしょうか? 他のページ(管理画面や投稿ページなど)は正常に動作しているでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問