javascript - 使用 Javascript/Jquery 的 Wordpress 短代码
问题描述
我找不到使用 javascript 调用 php 短代码的简单解决方案。
我有这个 javascript 代码:
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: 'POST',
url: '../wp-content/themes/medical-cure/ads_script.php',
success: function(data) {
$("p").text(data);
}
});
});
});
ads_script.php 包含:
<?php
echo do_shortcode( '[wprevive_js zoneid="10"]' );
?>
当我点击一个按钮时全部执行:
<button class="button" type="button" >Click Me</button>
但这一切都给了我一个 500error。也许我不得不问 wordpress stackexchange 因为
do_shortcode( '[wprevive_js zoneid="10"]' );
实际上是一个 Worpdress 代码,但我会很感激这里的任何帮助。
更新:
如果我尝试输入echo "hi"
而不是短代码,它会起作用,当我使用按钮启动 Ajax 调用时返回“HI”。
解决方案
您已将 ads_script.php 与 WordPress 核心隔离开来。
由于您直接调用它,因此它不会加载 WordPress,并且它们给出的 do_shortcode 不是函数错误。
尝试在 ads_script.php 文件中加载 wp_load.php。
它看起来像:
<?php
// instead of include '../../../wp-load.php'; do ...
$parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] );
require_once( $parse_uri[0] . 'wp-load.php' );
echo do_shortcode( '[wprevive_js zoneid="10"]' );
?>
推荐阅读
- xamarin.forms - Transform 中的 DynamicData 异常不会冒泡
- c - 为什么 printf 实现者更喜欢打印带有前导 1 的“%a”数字?
- python - 在线程中运行传入请求
- reactjs - ReferenceError:在我的 Next.js 存储库上安装包含 D3 图表的 npm 包后未定义窗口
- checkstyle - 是否可以编写双通检查式检查?
- python - python - 将字符串的元素存储到列表中
- c++ - 断言失败时 cout 没有输出
- python - 列表理解中的递增计数器
- java - 为什么我会在 Java 中收到此错误?线程“主”java.lang.Error 中的异常:未解决的编译问题
- python - 安装3.8后如何防止终端拿起旧的python版本2.7.16