web-dev-qa-db-ja.com

Functions.phpで現在の投稿IDを取得する

私のfunctions.phpには、現在の投稿の現在の投稿IDをjQueryファイルにプッシュする必要があるwp_localize_script()関数があります。だから私はあなたが私のfunctions.phpの中でどのようにあなたが現在の投稿のIDを取得することができるか疑問に思いました。

どちらも機能していません。

global $post;
$post_id = $post->ID;

global $wp_query;
$post_id = $wp_query->get_queried_object_id();
6
Robbert

ローカライズスクリプト関数をwp_enqueue_scriptsにフックすると、global $post変数にアクセスできるようになります。あなたが 'wp'以降にフックを選ぶ限り、あなたはglobal $postへのアクセスを持つべきです。

<?php
add_action('wp_enqueue_scripts', 'YOUR_NAME_scripts'); 

function YOUR_NAME_scripts() {

            wp_enqueue_script('YOUR_NAME-js');

            global $post;
            $params = array(
                'site_url' => site_url(),
                'admin_ajax_url' => admin_url('admin-ajax.php'),
                'post_id' => $post->ID
            );

            wp_localize_script( 'jquery', 'YOUR_NAME', $params );

}
10
Douglas.Sesar