0 レビュー
1 回答
php-ワードプレス関数が変数の外に値を返すのはなぜですか
wordpressテーマフォルダーのfunctions.phpファイルに関数があります。この関数は、フロントエンドで選択したワードプレスの投稿のicsファイルをダウンロードできるphpファイルへのリンクを作成します。
function ics_maker() {
$ics_link = "<a href='https://intranet.local/wp/icsmaker.php?eventname=".the_title()."&eventort=".the_field('eventort')."&eventstart=".the_field('eventstart')."&eventende=".the_field('eventende')."&eventext=".get_the_content()."'>Download</a>";
return $ics_link;
}
add_shortcode( 'shortcode_icsmaker', 'ics_maker');
このショートコードを追加した場合
[shortcode_icsmaker]
これを取得しています:
TitleofICSAddressOfICS24.03.2022 13:0024.03.2022 17:00 Download
ダウンロードリンクは機能するリンクですが、href excepct eventext 内に空の変数があります:
https://intranet.local/wp/icsmaker.php?eventname=&eventort=&eventstart=&eventende=&eventext=Lorem%20123
the_title()、the_field( "eventort")、...は$ ics_link変数の外に戻るようですが、なぜですか?
わからない
0
レビュー
答え :
解決策:
WordPress関数リファレンス( https://developer.wordpress.org/reference/functions/the_title/ )から:
the_title( string $before = '', string $after = '', bool $echo = true )
オプションのマークアップを使用して、現在の投稿タイトルを表示または取得します。
デフォルトでは、タイトルをエコーします。代わりに、タイトルを返すように明示的に要求する必要があります:
the_title('', '', false)
または、get_the_title()
メソッドを使用します> get_the_content()。ACFの
the_field()
の代わりに、get_field()
関数があります。この関数は、フィールド値をエコーする代わりに返します( https://www.advancedcustomfields.com/resources/the_field/ )。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。