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

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

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

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

PHP

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

Q&A

解決済

3回答

345閲覧

phpで、関数のreturnでHTMLの状態で返したい。

jikmjijm

総合スコア11

WordPress

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

PHP

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

0グッド

0クリップ

投稿2022/07/07 04:24

初心者です、拙い説明で申し訳ございません。ご教授いただければ幸いです。

public static function get_html() <?php $args = array(省略); $posts = get_posts($args); ===================================> <?php if ($posts) : foreach ($posts as $post) : setup_postdata($post); ?> <h1><?= $post->post_title ?></h1> <p>テスト</p> <?php endforeach; ?> <=================================== wp_reset_postdata(); ?>

こうなっているphpがあり、===================================の間をhtmlとしてreturnしたいです。

get_htmlを呼び出した時に、htmlとして呼び出せればいいです。
どのようなやり方がありますか?

wordpress 5.5.3
Web サーバー Apache/2.4.53 ()
PHP バージョン 7.4.28

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

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

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

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

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

guest

回答3

0

ベストアンサー

phpのコードを実行せずにそのまま文字列として取得したいのか、
phpのコードの出力結果を文字列として取得したいのか
ちょっとどっちかはっきりしないけど後者として回答。

php

1<?php 2public static function get_html(){ 3 $args = array(省略); 4 $posts = get_posts($args); 5 6 ob_start(); 7 if ($posts) : foreach ($posts as $post) : setup_postdata($post); 8?> 9 <h1><?= $post->post_title ?></h1> 10 <p>テスト</p> 11<?php 12 endforeach;endif; 13 wp_reset_postdata(); 14 15 return ob_get_clean(); 16}

出力バッファ

投稿2022/07/07 06:26

KazuhiroHatano

総合スコア7804

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

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

jikmjijm

2022/07/07 07:22

ちょうどそれを見つけて試していました。 こちらで実現可能です!ご丁寧にコードまで、ありがとうございました!
guest

0

HTMLを含んだ文字列を納める変数を立てて、
変数を加工したらいいんじゃないですかね。

念のためWordPress関数を調べてみる:
関数リファレンス/setup postdata - WordPress Codex 日本語版
テンプレートタグ/get posts - WordPress Codex 日本語版
これらが直接HTML出力することはなさそうなので、
こういう作戦にする。

php

1<?php 2<?php 3public static function get_html() { 4 5$args = array(省略); 6$posts = get_posts($args); 7 8$result = ''; 9 10if ($posts) : 11 foreach ($posts as $post) : 12 setup_postdata($post); 13 $result .= <<<EOT 14<h1>{$post->post_title}</h1> 15<p>テスト</p> 16EOT; 17 endforeach; 18endif; 19 20return $result; 21 22wp_reset_postdata(); 23 24}

やろうとしていることは、変数に、出力したいHTML文字列を連結して溜め込んで、
最後に return $result;にする。
PHP: 文字列 - Manualのヒアドキュメント構文、変数のパースを参照のこと。

投稿2022/07/07 05:10

編集2022/07/07 07:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

jikmjijm

2022/07/07 05:21

ありがとうございます。参考になるものはありますか?
guest

0

<?PHP ~ ?>」の間に「<?PHP」タグを入れることはできません
変数か何かに入れて出力することになるとは思いますが・・・

投稿2022/07/07 04:33

yambejp

総合スコア114843

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

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

jikmjijm

2022/07/07 05:21

ありがとうございます。参考になるものはありますか?
yambejp

2022/07/07 06:33

どういう配列(?)からどういう結果をほしいか例示頂いたほうがよいでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問