私は投稿Javascriptで投稿IDをエコーしようとしていますが、運が悪いです。
var post_id = '123'; // works fine
var post_id = '<?php global $post; echo $post->ID; ?>'; // echos 'ID; ?>'
var post_id = '<?php echo $post->ID;?>'; // echos 'ID; ?>'
投稿IDをエコーする正しい方法はありますか?
Wp_localize_script関数を使用して変数をJavaScriptに渡すことができます。 https://codex.wordpress.org/Function_Reference/wp_localize_script
Functions.phpに以下を追加してください
if(!function_exists( 'load_my_script')){ function load_my_script(){ グローバル$ post; $ deps = array( 'jquery'); $ version = '1.0'; $ in_footer = true; wp_enqueue_script( 'my-script'、get_stylesheet_directory_uri()。 '/js/my-script.js'、$ deps、$ version、$ in_footer); [。 wp_localize_script( 'my-script'、 'my_script_vars'、array( 'postID' => $ post-> ID ) ); add_action( 'wp_enqueue_scripts'、 'load_my_script');
そしてあなたのjsファイル(theme-name/js/my-script.js):
jQuery(document).ready(関数($){ alert(my_script_vars.postID); });
注意:
整数を渡そうとしているのなら、JavaScriptのparseInt()関数を呼び出す必要があります。
これは、公開された投稿と新しい投稿の両方のpost_ID
隠しフィールドで利用可能です。この単純なjQueryコードを使ってそれを得ることができます。
jQuery("#post_ID").val()
はい、わかった。多分これは誰かを助けるでしょう。テーマfunctions.php内:
function pid() {
global $current_screen;
$type = $current_screen->post_type;
?>
<script type="text/javascript">
var post_id = '<?php global $post; echo $post->ID; ?>';
</script>
<?php
}
add_action('wp_head','pid');