我有一个有效的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?
答案 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;
?>