0

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>

4

3 に答える 3