不能使用get_field()

时间:2014-05-09 10:21:21

标签: ajax wordpress

我有一个有效的AJAX函数,它将变量发送到我在模板目录中创建的页面。我正在使用高级自定义字段并执行get_field($name, $id)函数,但我收到500服务器错误。我查看了我的错误日志(Apache),发现它有一个未定义的函数错误。这很奇怪,因为当我在front-page.php上使用它时,它确实有效。

[Fri May 09 11:56:19.336469 2014] [:error] [pid 2235] [client 192.168.1.111:54118]
PHP Fatal error:  Call to undefined function get_field()
in /var/www/html/wp-content/themes/Custom Theme/setphoto.php on line 4,
referer: 192.168.1.115/

PHP

<?php
$p = $_GET['p'];
$url = get_field("nieuwsveld", $p);
echo $url;
?>

的JavaScript

$(".a_item").mouseover(function(){
            // Krijg url + id van href
            var href = $(this).attr("href");
            var p = href.replace("http://192.168.1.115/?p=", "");
            var xhr = new XMLHttpRequest();
            xhr.open("GET", "wp-content/themes/HSV Saints/setphoto.php?p="+p, true);
            xhr.send();

            xhr.onload = function(){
                console.log(xhr.responseText);
            }
           // $("#photo_news_photo").attr("src", img_url);


        });
    </script>

如何启用WordPress在模板目录中的外部文件中使用get_field?

1 个答案:

答案 0 :(得分:1)

我刚遇到这个问题并通过将acf.php包含在处理ajax请求的php文件的顶部来修复它。

因此,对于您的代码,它将是

<?php

include_once(__DIR__.'path/to/file/acf.php');

$p = $_GET['p'];
$url = get_field("nieuwsveld", $p);
echo $url;

?>