0

我想在文档加载后用 jQuery 加载一些动态数据。例如,让它成为标签云:

<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#sidebar-tags').load('<?php echo bloginfo('template_url'); ?>/tag_cloud.php');
});
</script>

在 tag_cloud.php 中是这样的:

<? wp_tag_cloud(''); ?>

而且ofcoz不起作用,“内部服务器错误”。我怎样才能使这个想法奏效?

解决了:

按照 Plamen Nikolov 的链接,想出了这个:

<script type="text/javascript">
jQuery(document).ready(function() {
jQuery.ajax({
         type : "post",
         dataType : "json",
         url : "/wp-admin/admin-ajax.php",
         data : ({action: "get_tag_cloud"}),
         success: function(response) {
            alert(response);}
         })
});
</script>

在functions.php中:

add_action('wp_ajax_get_tag_cloud', 'get_tag_cloud');
add_action('wp_ajax_nopriv_get_tag_cloud', 'get_tag_cloud');
function get_tag_cloud() {
    echo json_encode(wp_tag_cloud('echo=0'));
    die();
}

它几乎可以工作:如果我用 Firebug 检查它,我可以看到响应,但不会弹出警报。

4

3 回答 3

1

要发送 XHR 请求(Ajax),您必须坚持推荐的方式,使用正确的钩子:

请参阅此处的示例:WordPress Ajax 钩子

于 2012-11-12T10:31:38.457 回答
0

tag_cloud.php 中的代码功能错误,它响应内部服务器错误。为了开发 wordpress 小部件,您可以查看以下教程

http://wp.tutsplus.com/tutorials/plugins/creating-a-wordpress-network-widget

还要确保,您在 jquery 加载函数中调用了正确的 url。

于 2012-11-12T10:30:02.470 回答
0
$("#sidebar").html($.get('<?php echo bloginfo("template_url"); ?>/tag_cloud.php'); 

您必须转义单引号template_url或使用双引号。阅读您的服务器日志以进行进一步调试。

于 2012-11-12T10:32:36.007 回答