我强烈反对用延迟加载内容来更新现有的客户端站点。目前,问题似乎在管理ajax中。php文件,其中脚本在
if ( empty( $_REQUEST[\'action\'] ) )
die( \'0\' );
控制台中的错误:GET
http://www.example.com/wp-admin/admin-ajax.php?lang=en&action=example_frontpage_feed&page=0&next_time=0 net::ERR\\u EMPTY\\u响应
在localhost上一切都正常。如果直接转到浏览器上的url,屏幕上会闪现“此页面不工作”,但随后会显示正确的内容。此外,如果我在admin ajax上更改这一部分。php到任何其他类似的die(1)
, 懒惰的加载器只运行fin。不过,在我看来,这似乎是一个修复,可能会在以后引入一些维护问题。
以下是ajax请求:
fetchingFeed = true;
$.ajax({
// url got from php doing basically this:
// Example[\'ajax_url\'] = admin_url( \'admin-ajax.php?lang=\' . constant(\'ICL_LANGUAGE_CODE\') )
url: Example.ajax_url,
dataType: \'json\',
type: \'get\',
data: { action: \'example_frontpage_feed\', page: feedPage, next_time: feedNextTime },
success: function(response) {
if(response.success) {
renderFeedPosts(response.posts);
feedPage = response.nextPage;
feedNextTime = response.nextTime;
} else {
if(response.error) {
handleFeedLoadError(response.error);
}
}
fetchingFeed = false;
},
error: function() {
handleFeedLoadError();
fetchingFeed = false;
}
})
这就是行动
function example_frontpage_feed_ajax() {
require_once \'inc/fetch-feed.php\';
$fetch_page = isset($_GET[\'page\']) ? intval($_GET[\'page\']) : 0;
$fetch_next_time = isset($_GET[\'next_time\']) ? $_GET[\'next_time\'] : null;
header(\'Access-Control-Allow-Origin: https://www.example.com\');
example_feed_content($fetch_page, $fetch_next_time);
}
add_action(\'wp_ajax_nopriv_example_frontpage_feed\', \'example_frontpage_feed_ajax\');
add_action(\'wp_ajax_example_frontpage_feed\', \'example_frontpage_feed_ajax\');
编辑:功能
example_feed_content
基本上可以收到邮件和电话
wp_send_json(blah blah)