首页 > 解决方案 > 使用 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”。

标签: javascriptphpajaxwordpressshortcode

解决方案


您已将 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"]' );
?>

推荐阅读