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

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

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

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

PHP

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

Q&A

解決済

2回答

626閲覧

Wordpress、ショートコードを使ってPHPで画像を作成し、表示する方法について

hatena_

総合スコア4

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/08/21 10:14

編集2019/08/21 10:18

前提・実現したいこと

WordPressの投稿記事内でPHPを利用して画像を作成し、それを表示したいです。

発生している問題・エラーメッセージ

ページを開いた際に画像を作成して、フォルダに保存することはできたのですが、
保存した画像を表示することができずに困っています。
そもそも発想から間違っている気もしているので、実現可否も合わせて教えていただけると嬉しいです。

画像ファイル"パス・・・"は壊れているため、表示できませんでした。

該当のソースコード

Wordpressのfunctiopn.phpにincludeのコードを書いて、別のphpファイルを読み込ませています。画像の作成はできているので、該当部分は省略します。

PHP・・・ショートコードのためにfunction.phpに下記を記載。動作確認済み。 function test($params = array()) { extract(shortcode_atts(array( 'file' => 'default' ), $params)); //ob_start(); include(STYLESHEETPATH . "/function/$file.php"); return ob_get_clean(); } add_shortcode('test1', 'test'); 投稿記事内では [test1 file='sample'] sample.php <?php for ($i = 1; $i <= 10; $i++) { 〜画像を作成するコード、省略〜 $file = 'ファイル名'; header('Content-Type: image/png'); readfile($file); echo $i."件の処理を完了しました。<br />\n"; echo str_pad(" ",4096)."<br />\n"; ob_flush(); flush(); } } ?>

試したこと

ループ処理で10個画像を作成し、作成するたびにメッセージと画像を表示したいと思っています。

header('Content-Type: image/png'); readfile($file);

の部分をコメントアウトすれば、画像の作成とメッセージ表示は順次実行されることを確認しています。
また、他の処理をすべて消して

<?php $file = ファイル名; header('Content-Type: image/png'); readfile($file); ?>

としても同様に"壊れている"エラーが表示されます。
また、header()部分をコメントアウトすると文字化けしたデータが表示されます。(想定どおり)
投稿記事内におけるショートコードを使ったPHPでは、
header('Content-Type: image/png');
は利用できないのでしょうか?

また、その場合はheader()を使わない画像の表示方法はあるのでしょうか?

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

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

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

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

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

CHERRY

2019/08/21 10:55 編集

作成したファイルが、ウェブラウウザで正しく表示されることは確認されたのでしょうか?  画像ファイルの URL を直接 ウェブブラウザで参照すると表示されますか?
hatena_

2019/08/21 11:35

ご質問ありがとうございます。 HTMLタグで指定した場合は表示されます。 ショートコードでheader()がそもそも使えるのかがとても気になっています。
guest

回答2

0

自己解決

自己解決しました。
ショートコード内にheader()を書くとエラーで表示できなかったのですが、
For文内でhtmlタグを加えて
echo '<img src="'.get_stylesheet_directory_uri().'/'.$directory_name. '/'.$i.'.png">';
このような記載をすることでやりたいことが実現できました。
ご回答いただきありがとうございました。

投稿2019/08/22 16:53

hatena_

総合スコア4

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

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

0

一つのphpファイルで10個のpngファイルを送りたいのでしょうか?
そもそもの考え方がおかしいので無理です。
複数のファイルを結合したり、並べたりして1枚の画像としてなら
出力は可能でしょう。

投稿2019/08/21 10:45

yambejp

総合スコア114819

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問