Php WordPress:保持显示相同的日期、标题和作者
我试图在我的网站主页上显示我的WordPress博客上最近的3篇文章,它一直显示相同的日期、作者和标题。但是,内容会正确更新和更改 有人能告诉我我做错了什么,为什么它没有选择正确的日期、标题和作者,而是选择了正确的内容 我的当前代码: AjaxPhp WordPress:保持显示相同的日期、标题和作者,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我试图在我的网站主页上显示我的WordPress博客上最近的3篇文章,它一直显示相同的日期、作者和标题。但是,内容会正确更新和更改 有人能告诉我我做错了什么,为什么它没有选择正确的日期、标题和作者,而是选择了正确的内容 我的当前代码: Ajax $(document).ready(function() { GetLatestBlogPost(); }); function GetLatestBlogPost() { $.ajax( { url: "IsosecWeb/
$(document).ready(function()
{
GetLatestBlogPost();
});
function GetLatestBlogPost()
{
$.ajax(
{
url: "IsosecWeb/php/getLatestBlogPost.php",
type: 'POST',
dataType: 'json',
beforeSend: function()
{
console.log("Before send...");
},
success: function (successData)
{
console.log(successData);
console.log("successful send...");
}
});
}
PHP
require('../../blog/wp-blog-header.php');
header('Content-Type: application/json');
// Create an object to store the data to be returned in
$newPostArray = array();
$postCounter = 0;
function GetLastestBlogPosts()
{
$args = array( 'numberposts' => 3, 'offset' => 0, 'post_status'=>"publish",'post_type'=>"post",'orderby'=>"post_date");
$postslist = get_posts( $args );
foreach ($postslist as $post)
{
setup_postdata($post);
$postCounter++;
$newPostArray['getLastestBlogDate' . $postCounter] = get_the_date();
$newPostArray['getLastestBlogTitle' . $postCounter] = get_the_title();
$newPostArray['getLastestBlogContent' . $postCounter] = wp_trim_words(preg_replace("/\< *[img][^\>]*[.]*\>/i","", get_the_content(), 80), 80);
$newPostArray['getLastestBlogAuthor' . $postCounter] = get_the_author_link();
}
return $newPostArray;
}
echo json_encode(GetLastestBlogPosts());
require('../../blog/wp blog header.php');
标题('Content-Type:application/json');
//创建一个对象来存储要返回的数据
$newPostArray=array();
$postCounter=0;
函数getLastTestBlogPosts()
{
$args=数组('numberposts'=>3,'offset'=>0,'post\u status'=>“publish”、'post\u type'=>“post”、'orderby'=>“post\u date”);
$postslist=get_posts($args);
foreach($postslist作为$post)
{
设置_postdata($post);
$postCounter++;
$newPostArray['GetLastTestBlogDate'.$postCounter]=获取日期();
$newPostArray['GetLastTestBlogTitle'.$postCounter]=获取标题();
$newPostArray['GetLastTestBlogContent'.$postCounter]=wp_trim_words(preg_replace(“/\<*[img][^\>]*[.]*\>/i”,”,get_the_content(),80),80);
$newPostArray['GetLastTestBlogAuthor'.$postCounter]=获取作者链接();
}
返回$newPostArray;
}
echo json_encode(getLastTestBlogPosts());
控制台中的输出。日志
在foreach循环之前存在一个全局$post变量,因此您应该指定get_the_date等参数,如下所示:
$newPostArray['getLastestBlogDate' . $postCounter] = get_the_date('Y-m-d H:i:s',$post);
$newPostArray['getLastestBlogTitle' . $postCounter] = get_the_title($post);
$newPostArray['getLastestBlogContent' . $postCounter] = wp_trim_words(preg_replace("/\< *[img][^\>]*[.]*\>/i","", get_post_field('post_content', $post->ID);, 80), 80);
$newPostArray['getLastestBlogAuthor' . $postCounter] = get_author_posts_url(get_post_field('post_author', $post->ID));
$newPostArray['getLastestBlogDate'.$postCounter]=获取日期('Y-m-d H:i:s',$post);
$newPostArray['GetLastTestBlogTitle'.$postCounter]=获取标题($post);
$newPostArray['GetLastTestBlogContent'.$postCounter]=wp_trim_words(preg_replace(“/\<*[img][^\>]*[.]*\>/i”,”,get_post_字段('post_content',$post->ID);,80);
$newPostArray['GetLastTestBlogAuthor'.$postCounter]=get_author_posts_url(get_post_字段('post_author',$post->ID));
或者您可以使用新的wp_query而不是get_posts(),它将构建一个新的查询循环,然后在真正的查询循环中使用get_the_date()等函数。如果不指定$post参数,get_the_date()函数将使用全局$post变量作为参数,因为foreach不是真正的wordpress查询循环