将jQuery值传递给WordPress函数

时间:2016-10-27 作者:aido14

我有一个弹出窗口,我想显示该特定帖子的作者信息。

我正在使用WordPress Popup Maker,并创建了一个功能,我将其转换为一个快捷码,以便在Popup Maker中使用。

我要做的是将一个链接的ID推送到一个显示用户数据的函数。

这是我的Jquery中的一个钩子函数。php:

add_action( \'wp_footer\', \'my_custom_popup_scripts\', 500 );
function my_custom_popup_scripts() { ?>
<script type="text/javascript">
(function ($, document, undefined) {


$(\'.author-popup\').click(function() {
  var id = $(this).attr(\'id\');

});


    // Your custom code goes here.
}(jQuery, document))
</script><?php
}
这是我想要控制显示哪些用户数据的功能的开始:

function my_author_box() { ?>


<?php


 $args = array(
\'author\'        =>  "31", //this what I want to change with Jquery 
);
query_posts($args);
?>
这是我的触发器链接:

<a href="#" class="author-popup" id="33">some user</a>
我对jquery或AJAX不是很好,我读过这可能是一个解决方案。如果有人有任何想法,我将不胜感激。

提前感谢

1 个回复
最合适的回答,由SO网友:Sebastian Kaczmarek 整理而成

为此,必须使用AJAX。您需要做的是:

创建一个JS脚本,向管理员AJAX发送AJAX请求。php文件:


    1. <script>
       jQuery(".author-popup").on("click", function(){
        var id = jQuery(this).attr("id");
        jQuery.post("http://www.yourdomain.com/admin-ajax.php", {action: "my_author_box", id: id}, function(response){
         console.log("Response: " + response);
         //NOTE that \'action\' MUST be the same as PHP function name you want to fire
         //you can do whatever you want here with your response
        });
       })
      </script>
      
      创建新文件e.x.myajax。php并将其包含到函数中。php现在编写一个单击即可启动的函数,e.x.:

      1. function my_author_box(){
           $args = array(
            \'author\' => $_REQUEST[\'id\'];
           );
           query_posts($args);
           die();
        }
        add_action( \'wp_ajax_my_author_box\', \'my_author_box\' );
        add_action( \'wp_ajax_nopriv_my_author_box\', \'my_author_box\' );
        
        仅此而已。正如我所说,请注意action必须与PHP函数相同。如果您想从PHP函数得到一些响应,只需echo 这就是你将得到的回应。如果你能0 作为响应,它意味着您要激发的函数不存在或您没有调用die() 在功能结束时。应该有用