2014-01-08 1 views
0

내 functions.php 파일에서 jQuery에서 PHP로 가져 오는 변수가 있습니다.functions.php에 정의 된 변수 사용하기 WORDPRESS

하지만 페이지에서 사용할 수 없습니다. 내가 functions.php에서 에코 때 내 템플릿 페이지에 에코하려고하면

, 내가 아무것도 얻을,

.. 크롬에서 콘솔에 나타납니다,하지만 추가 된 0이있다.

아래 코드.

jQuery를

var pie = 131; 

$.ajax({ 
    url: ajaxurl, //super global supplied by Wordpress; do not change 
    type: 'POST', 
    data: { 
     action: 'get_post_id', //this is correct 
      pie : pie 
    }, 
    success: function (data){ 
     console.log(data); 
    } 
}); 

functions.php

add_action('wp_head','pluginname_ajaxurl'); 
    function pluginname_ajaxurl() { 
    ?> 
    <script type="text/javascript"> 
    var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; 
    </script> 
    <?php 
    } 

    add_action('wp_ajax_nopriv_get_post_id', 'my_ajax_function'); 
    add_action('wp_ajax_get_post_id', 'my_ajax_function'); 

    function my_ajax_function() { 
     $new_pie = isset($_POST['pie']) ? $_POST['pie'] : false; 
     echo($new_pie); 
    } 

템플릿 page.php 사전에

<?php echo($new_pie); ?> 

감사합니다.

+0

* sidenote : * 'echo'의 괄호는 필요하지 않습니다. – Raptor

+0

thanks @ ShivanRaptor –

답변

0

이전 질문에서이 문제를 해결했습니다.

에코 후에 die()이 필요하므로 0이 Ajax 호출에 추가됩니다.

echo $new_pie; 
die(); 

이렇게하면 0이 추가되지 않습니다.

AJAX 호출에서 데이터를 반환하는 경우 요소에 추가하는 등의 작업을 수행해야합니다. 이 경우 elementID 같은 DIV 또는 P.으로 요소의 ID이다

$('#elementID').append(data); 

다음 사용할 필요도 없다

(!) 참고

:

<script type="text/javascript"> 
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; 
</script> 

Wordpress는 ajaxurl 자바 스크립트를 만들었으며 WP 2.8부터 사용하고 있습니다.

+0

감사합니다. 죄송합니다. 이전 질문을 확인했지만 응답을 보지 못했습니다. 쿨, 0 정렬되었습니다. 전달 된 값에 따라 사용자 정의 필드를 가져 오기 위해 내 페이지의 변수로 var $ new_pie를 사용해야합니다. 그게 가능합니까? @Ohgodwhy –

+0

@DeanMGordon 아니요, 대신 [get_post_meta()] (http://codex.wordpress.org/Custom_Fields#Getting_Custom_Fields)를 사용하십시오. 힌트. 'global $ post;를 할 수 있습니다. $ post-> ID; '를 클릭하여 현재 게시중인 게시물의 현재 ID를 가져옵니다. – Ohgodwhy

+0

아아아, 나는 그때 계속 생각할 것이다. 모든 도움에 감사드립니다. @Ohgodwhy –

관련 문제