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

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

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

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

PHP

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

Q&A

解決済

2回答

1205閲覧

Wordpressで画像とリンクが取れなくなりました

WPJ

総合スコア23

WordPress

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

PHP

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

0グッド

0クリップ

投稿2020/01/15 20:39

編集2020/01/16 12:16

Wordpressでニュース一覧ページを作っているのですが、
以下のソースに変更した所、画像とリンクがデータベースより取れなくなりました。
具体的な変更箇所は、
get_posts
から
have_posts
に変更しました。

問題のページは以下の一覧ページになります。
http://test.second-order.jp/news

Wordpressのcategory.phpファイルのソースは以下になります。

<?php get_header(); $theID = get_the_ID(); ?> <div id="news-line"> <div class="container-fluid news-text"> <div class="row"> <div class="smp-1"> <h2><span>NEWS一覧</span></h2> </div> <div class="col-xs-12 col-sm-12 col-sm-offset-0 col-md-6 col-md-offset-3"> <div class="topthirty"> <?php $paged = get_query_var('paged'); ?> <?php if (have_posts()) : query_posts( '$query_string&posts_per_page=10&category_name=news&paged='.$paged); ?> <?php while ( have_posts() ) : the_post(); ?> <div class="row wht news-line"> <div class="col-xs-12 col-sm-12 col-md-3"> <p class="days"><?php the_time( get_option( 'date_format' ) ); ?></p> </div> <div class="col-xs-12 col-sm-12 col-md-6"> <a href="<?php echo esc_url($href); ?>"> <h3 class="news4 bold1"><?php echo $post->post_title; ?></h3> </a> <p class="next-p text-justify"> <?php echo wp_trim_words( get_the_content(), 100, '...' ); ?> </p> </div> <div class="col-xs-12 col-sm-12 col-md-3"> <a href="<?php echo esc_url($href); ?>"> <div class="pic"> <img src="<?php echo esc_url($img_url); ?>" alt="<?php echo $post->post_title; ?>" class="img-responsive same-size"/> </div> </a> </div> </div> <?php endwhile; ?> <?php else : ?> <?php endif; ?> <div class="view2"> <?php echo paginate_links(); ?> <!--<div class="grad-wrap2"> <span class="grad-trigger2"> <div class="eff-4"></div> <a href="news">VIEW MORE</a> </span> </div>--> </div> </div> </div> </div> </div> </div> <?php get_footer(); ?>

画像が読み込めなくなった原因をお教え頂ければと思います。
何卒よろしくお願い致します。

元のデータは以下になりまして、
こちらのソースで写真やリンクは問題なく設置できるのですが、
2ページ目の遷移ができなく、ページネーションの連動ができませんでした。

そして、上記にした場合、無事ページネーションが効きましたが、
その代わり写真とリンクが反映されない事態になりました。

<?php get_header(); $theID = get_the_ID(); ?> <div id="news-line"> <div class="container-fluid news-text"> <div class="row"> <div class="smp-1"> <h2><span>NEWS一覧</span></h2> </div> <div class="col-xs-12 col-sm-12 col-sm-offset-0 col-md-6 col-md-offset-3"> <div class="topthirty"> <?php $args = array( 'posts_per_page' => 10, 'post_type' => 'post', 'exclude' => $theID ); $posts = get_posts( $args ); foreach ( $posts as $post ) : setup_postdata( $post ); $href = get_permalink($post->ID); $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'post-thumb' ); $img_url = $thumb['0']; $excerpt = $post->post_excerpt ? mb_substr(strip_tags($post->post_excerpt), 0, 120) : mb_substr(strip_tags($post->post_content), 0, 120); ?> <div class="row wht news-line"> <div class="col-xs-12 col-sm-12 col-md-3"> <p class="days"><?php the_time( get_option( 'date_format' ) ); ?></p> </div> <div class="col-xs-12 col-sm-12 col-md-6"> <a href="<?php echo esc_url($href); ?>"> <h3 class="news4 bold1"><?php echo $post->post_title; ?></h3> </a> <p class="next-p text-justify"> <?php echo wp_trim_words( get_the_content(), 100, '...' ); ?> </p> </div> <div class="col-xs-12 col-sm-12 col-md-3"> <a href="<?php echo esc_url($href); ?>"> <div class="pic"> <img src="<?php echo esc_url($img_url); ?>" alt="<?php echo $post->post_title; ?>" class="img-responsive same-size"/> </div> </a> </div> </div> <?php endforeach; wp_reset_postdata(); ?> <div class="view2"> <?php wp_pagenavi(); ?> <div class="grad-wrap2"> <span class="grad-trigger2"> <div class="eff-4"></div> <a href="news">VIEW MORE</a> </span> </div> </div> </div> </div> </div> </div> </div> <?php get_footer(); ?>

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

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

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

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

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

tabuu

2020/01/16 00:26

$href $img_url という変数を使っていますが、どこで値を入れていますか?
WPJ

2020/01/16 12:16

全くのPHP初心者でどこに値を入れているかわかりません。 先のソースを上記に記載させて頂きました。
guest

回答2

0

WordPressで2ページ目が表示されない の続きでしょうか?

Wordpressでニュース一覧ページを作っているのですが、
以下のソースに変更した所、画像とリンクがデータベースより取れなくなりました。

前の質問( WordPressで2ページ目が表示されない )のコードにあった リンクを取得している部分

$href = get_permalink($post->ID);
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'post-thumb' );
$img_url = $thumb['0'];

はどこに行ったのでしょうか?

リンクを取得したり、画像の URL を取得したりしていた部分がなくなっていますので、表示されないと思います。


また、query_posts は、テンプレートタグ/query_posts

query_posts() はページ内のメインクエリーを書き換え、新しいクエリーのインスタンスと置き換えるために使う関数としては過度に単純化され、問題が発生しやすい方法です。非効率的で(SQL クエリを再実行します)、一部の状況では適切に実行することもできません(特にページング処理)。モダンな WordPress コードではもっと安定したメソッドを使うべきです。例えばpre_get_posts フックを使った方法などです。ひとことで言うと、query_posts() は決して使うべきではありません。

とある様に 非推奨の古いやり方です。

前の質問( https://teratail.com/questions/235388 )の回答に記載されているように pre_get_posts を使う方法に変更することをおすすめします。

投稿2020/01/16 22:56

CHERRY

総合スコア25171

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

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

WPJ

2020/01/19 18:25

CHERRYさんご指摘ありがとうございます。 非推奨の古いやり方なのですね、、、 かしこまりました、pre_get_posts を使う方法に変更してみます。。
guest

0

ベストアンサー

php

1<?php while ( have_posts() ) : the_post(); ?> 2

上記のコードの直下に以下のコードを移植してみてください。

php

1<?php 2$href = get_permalink($post->ID); 3$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'post-thumb' ); 4$img_url = $thumb['0']; 5?>

移植すると以下のようになります。

php

1... 2<?php while ( have_posts() ) : the_post(); ?> 3<?php 4$href = get_permalink($post->ID); 5$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'post-thumb' ); 6$img_url = $thumb['0']; 7?> 8...

しかしながらget_postsとhave_postsは本来用途が異なるものなので正常に挙動しない可能性もあります。

投稿2020/01/16 22:58

tabuu

総合スコア2449

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

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

tabuu

2020/01/16 23:45

追記 CHERRYさんとかぶっちゃいましたね。すみません。 query_postsが非推奨というのはその通りなので、この手法で上手くいったらpre_get_postsで置き換えてみてください。
WPJ

2020/01/17 00:13

本当にわかりやすい、的確な指示に感謝しております。 すぐに対応できて、表示されました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問