1

所以,我在 wordpress 中有一个 php 页面(WP-Api 2):

<?php
/**
 * Template Name: WP-Api
 */
add_action("wp_enqueue_scripts", "enqueue_");
function enqueue_() {
    wp_localize_script( 'wp-api', 'wpApiSettings', array( 'root' => esc_url_raw( rest_url() ), 'nonce' => wp_create_nonce( 'wp_rest' ) ) );

}
get_header(); ?>

<h1>oi</h1>
<script type="text/javascript">

jQuery.ajax( {
    url: wpApiSettings.root + 'wp/v2/posts/1',
    method: 'POST',
    beforeSend: function ( xhr ) {
        xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce );
    },
    data:{
        'title' : 'Hello Moon'
    }
} ).done( function ( response ) {
    console.log( response );
} );

</script>

我想运行这个例子,但控制台说

未捕获的 ReferenceError:未定义 wpApiSettings

我究竟做错了什么?谢谢!

4

1 回答 1

2

看看这里的例子: https ://codex.wordpress.org/Function_Reference/wp_localize_script

您需要 wp_register_script 和 wp_enqueue_script 否则将不会创建 JS 变量。

于 2016-06-24T06:10:27.637 回答