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

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

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

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

PHP

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

Q&A

解決済

1回答

887閲覧

ショートコードで画像のURLを取得したい

TakenokoTaro

総合スコア20

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/10/28 04:26

編集2019/10/28 04:48

wordpress初心者です。

ショートコードを作る際に、記事のサムネイルも表示させたいと思い、下記のようにfunctions.phpにコードを追加しました。

php

1<?php 2function linkpage_func_img ( $atts ) { 3 extract( shortcode_atts( array( 4 'id' => '', 5 'slug' => '', 6 ), $atts ) ); 7 $my_url = home_url( '/' ); 8 if($slug){ 9 $id = url_to_postid($my_url. $slug); 10 } 11 $link = get_permalink($id); 12 $title = get_the_title($id); 13 $img = the_post_thumbnail_url($id,'medium');//←追加したコード 14 return '<a href="'. $link .'"' .'itemprop="url">'.'<img src="'.$img.'">'. $title. '</a>'; 15} 16add_shortcode('pagelink-img', 'linkpage_func_img');

ですが、正常に表示されず、開発者ツールでは「img src(unknown)」と表示されてしまいます。
リンク先の記事に画像だけでなくアイキャッチ画像を入れてみてもダメでした。

どのようにすれば解決できるかご教授いただけないでしょうか?

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

$img = the_post_thumbnail_url($id,'medium');//←追加したコード

ですが、正常に表示されず、開発者ツールでは「img src(unknown)」と表示されてしまいます。

リンク先の記事に画像だけでなくアイキャッチ画像を入れてみてもダメでした。

テンプレートタグ/the_post_thumbnail にある書式では <?php the_post_thumbnail( $size, $attr ); ?> と書かれていますので、呼び出し方(パラメータの指定)が間違っていると思います。

the_post_thumbnail の場合、WordPress のループ内で、使用するので、ループで指定されている「投稿ID」のサムネイルを取得します。
しかし、サイズに 投稿ID を指定して、タグの属性値指定に サイズを渡していますので、「投稿ID」に準ずるサイズは、存在しないので、 unknown になっていると思われます。

おそらく、やりたいこととしては、the_post_thumbnail_url() ではなく、投稿IDサイズを指定してサムネイルURLを取得する get_the_post_thumbnail() を使うの間違いではないでしょうか?

テンプレートタグ/get_the_post_thumbnail の書式は、 <?php echo get_the_post_thumbnail( $post_id, $size, $attr ); ?> です。

質問のコードでは、the_post_thumbnail_url()get_the_post_thumbnail() のパラメータを渡しているので、関数名の記載を間違えていると思います。

投稿2019/10/28 06:15

CHERRY

総合スコア25171

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

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

TakenokoTaro

2019/10/28 06:22

無事サムネイルが表示されるようになりました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問