在函数

时间:2018-01-24 15:31:53

标签: php wordpress

TLDR:我想在WordPress中除functions.php之外的PHP文件中使用get_theme_mod()来使用通过自定义程序添加的值。

长版:

我在一个单独的PHP文件中使用cURL进行API调用。我想在自定义程序中创建一个新面板,其中包含一个输入字段,该字段接受我的自定义PHP API调用的API密钥。基本上我需要知道是否可以使用get_theme_mod()方法将值调用到我的自定义PHP文件中,将其存储在变量中并使用它将其附加到我的API调用中。

这是我的API调用代码

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://maps.googleapis.com/maps/api/place/details/json?placeid=< GOOGLE PLACE ID >&key=< MY API KEY>",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Cache-Control: no-cache",
    "Content-Type: application/json"

  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

一旦调用完成,我将这个文件AJAX放入一个JavaScript文件中,我处理数据。这是我最初将API调用放入单独文件的原因。我的目标是让网站上的工作人员只需粘贴一个API密钥或Google的地方ID,就可以执行整个流程,而无需在源代码中进行操作。我有所有的基础设施,呼叫工作我只是想消除我们触摸源代码的需要,只需在定制器中删除API密钥值,让代码完成剩下的工作。

1 个答案:

答案 0 :(得分:0)

我假设您的意思是theme customizer?也许可以使用Settings API保存设置。但您也应该do AJAX the "wordpress way"或使用newer REST stuff

直接回答你的问题&#34;如何在外部PHP中使用Wordpress功能&#34;见https://wordpress.stackexchange.com/questions/47049/what-is-the-correct-way-to-use-wordpress-functions-outside-wordpress-files

<?php 
define('WP_USE_THEMES', false); // although you might want that to be true if you're using theme data?
require('./wp-load.php');
?>

或者可以考虑使用地方键和/或api键执行所有那些in a shortcode的内容,例如[get-place-info placekey="xxxxx" apiKey="xxxx"]所以你的用户可以将它转储到任何地方,除非你特别需要它可用于javascript(哎呀,你可以让短代码将JSON转储到页面中)。