【问题标题】:How to use "get_template_directory_uri" in javascript function如何在 javascript 函数中使用“get_template_directory_uri”
【发布时间】:2019-03-28 11:20:26
【问题描述】:

这是我的 WordPress PHP 文件代码的一部分,我在其中编写了一个 JavaScript 代码,我想显示来自查询的名称和图像。 显示名称但未显示图像,然后我添加了 get_template_directory_uri(),在添加 get_template_directory_uri() 后,它在控制台中显示错误,如“参数列表后未捕获的语法错误:缺少)”。 所有图像都存储在 WordPress 主题图像文件夹中。 如何编写javascript代码来显示图像? 请帮我解决这个问题。

谢谢。

function partyFunction(){
debugger;
$postdata = {};
$postdata["partyId"]=$("#partydropdown").val();
$.post('<?php echo get_template_directory_uri() ? 
>/GetPartiesData.php',$postdata,function (data) {
debugger;
console.log(data);
var stringreplace = data.replace(/['"]+/g, '');
console.log(stringreplace);
var res = stringreplace.split(",");
  console.log(res);
  $("#partyBody").empty();
  $("#partyBody").html('');
  $("#partyBody").append("<tr>"+
    "<td>"+res[1]+"</td>"+
    "<td><img src='"+<?php echo get_template_directory_uri() ? 
 >/img/++res[2]+"' style='padding:5px;vertical-align: middle;border-style: 
 none;width:129px;height:109px;' ></td>"+
 "<td><img src='"+res[3]+"' style='padding:5px;vertical-align: 
 middle;border-style: none;width:129px;height:109px;' ></td>"+
 "<td><a href='"+res[4]+"' target='_blank'>click here</a></td>"+
 "</tr>");
 });
 }

【问题讨论】:

  • “未捕获的语法错误”听起来像是 JavaScript 错误,而不是 PHP 错误。所以去检查你的脚本的实际输出。

标签: javascript php wordpress


【解决方案1】:
//Add code in function.php 
function theme_directory_uri(){
wp_localize_script( 'ajax-login-script', 'uri_object', array( 
    'theme_directory_uri' => get_template_directory_uri()
));
}
add_action('init', 'theme_directory_uri');
//get in javascript

var theme_uri = uri_object.theme_directory_uri;

【讨论】:

    【解决方案2】:

    方法一:

    将其分配给您的 php 文件中的全局变量,然后在 javascript 中调用它

    像这样在你的 .php 文件的顶部

    <script>
      template_directory = "<?php echo get_template_directory_uri() ?>"
    </script>
    

    然后像这样使用 template_directory

    $.post(template_directory+'/GetPartiesData.php',$postdata,function (data) {
    

    在图像 src 中也同样使用。


    方法二:

    使用 wordpress 入队函数

    wp_register_script( 'template-directory', 'myscript_url' );
    wp_enqueue_script( 'template-directory' );
    wp_localize_script( 'template-directory', 'directory_name', array( 'templateUrl' => get_stylesheet_directory_uri() ) );
    

    并在你的脚本中使用它

    template_directory = directory_name.templateUrl;
    
    $.post(template_directory+'/GetPartiesData.php',$postdata,function (data) {
    

    【讨论】:

      【解决方案3】:

      未捕获的语法错误:丢失)

      <img src='"+<?php echo get_template_directory_uri() ?>/img/++res[2]+"'
      

      替换为:

      <img src='<?=get_template_directory_uri()?>/img/"+res[2]+"'
      

      你错过了语句结尾的分号:

      <?php echo get_template_directory_uri(); ?>
      -                                      ^ just missed 
      

      P.S.您多次使用同一行,请确保所有行都已修改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-20
        • 2016-08-20
        • 2017-11-02
        • 2013-12-05
        • 2011-09-26
        相关资源
        最近更新 更多