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)を送信するには、適切なフックを使用して、推奨される方法に固執する必要があります。

こちらの例をご覧ください:WordPressAjaxフック

于 2012-11-12T10:31:38.457 に答える
0
$("#sidebar").html($.get('<?php echo bloginfo("template_url"); ?>/tag_cloud.php'); 

一重引用符をエスケープするか、template_url二重引用符を使用する必要があります。さらにデバッグするためにサーバーログを読み取ります。

于 2012-11-12T10:32:36.007 に答える
0

tag_cloud.phpのコード機能が間違っており、内部サーバーエラーに応答します。ワードプレスウィジェットを開発するために、あなたは次のチュートリアルを見ることができます

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

また、jqueryロード関数で正しいURLを呼び出していることを確認してください。

于 2012-11-12T10:30:02.470 に答える