wordpress ループ内の要素で Bootstrap ポップオーバーを使用したい。理想的には投稿のタイトルを取得し、それを変数に格納して変数を返す JavaScript 関数がありますが、php ブロックは文字列として格納されます。ここや他の場所で多くのスレッドを見てきましたが、解決策は php ブロックを内部に配置することですが、<?php ?>
ここでは機能しません。
ポップオーバーに次が表示されます。<?php echo the_title(); ?>
スクリプトの実行が早すぎますか?
wp_enque_script() でエンキューされた .js ファイル内の私のコード:
jQuery(document).ready(function($){
share = function() {
var title = "<?php echo the_title(); ?>";
return title;
}
$('.share').popover({
content: share(),
placement: 'bottom'
});
});
編集
wp_localize_script()
回答の1つで提案されているように使用しましたが、変数が返されますnull
functins.php
wp_enqueue_script( 'scripts', get_template_directory_uri() . '/js/scripts.js', array(), '', true );
wp_localize_script('scripts', 'script_vars', array(
'title' => the_title(),
'url' => the_permalink()
)
);
scripts.js
jQuery(document).ready(function($){
share = function() {
var title = script_vars.title;
return title;
}
$('.share').popover({
content: share(),
placement: 'bottom'
});
});
さらに、各ページのタグの後the_title()
にthe_permalink()
エコーされます<body>