我正在尝试在Wordpress中的控制面板上刷新小部件。如何使用AJAX在Wordpress上正确刷新数据
我的插件是用PHP编写的,但我试图添加Jquery/AJAX来刷新每个小部件,当做出一些更改时。
PHP中的函数将下载并存储该文件,然后将该信息显示到小部件中。
我遇到的问题是:文件成功下载并存储。但新信息并未显示。它保持不变。 我相信这可能很简单,但我一直试图让这个工作一段时间没有成功。
这里是我的代码示例:
<?php
add_action('admin_footer', 'my_action_javascript'); // Write our JS below here
function my_action_javascript() { ?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
var data = {
'action': 'refresh_function',
};
setInterval(function() {
$.get(ajaxurl, data, function (result) {
});
},20000);
});
</script> <?php
}
add_action('wp_ajax_refresh_function', 'display_function');
PHP函数:
function display_function()
{
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
ftp_close($conn_id);
$path = __DIR__."/XML/File.xml";
$channel = simplexml_load_file($path);
echo "<div style='overflow:auto; height:400px;'>";
foreach ($channel->channel->item as $item)
{
echo "<div class='xppArticle'>";
echo "<h2>" . $item->title . "</h2>";
echo "<p>". set_paragraph_length_display($item->description, 250) . "(...)" . "</p>";
global $wpdb;
$query = $wpdb->prepare('SELECT ID FROM ' . $wpdb->posts . ' WHERE post_title = %s', $item->title);
$cID = $wpdb->get_var($query);
echo "<hr />";
echo "</div>";
}
echo "</div>";
}
我明白的是我的AJAX会调用该函数,它会工作,因为它通常会。我想我错了,因为一旦我使用AJAX下载新文件,屏幕上就不会显示新内容。
谢谢!