Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress:保持显示相同的日期、标题和作者_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Php WordPress:保持显示相同的日期、标题和作者

Php WordPress:保持显示相同的日期、标题和作者,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我试图在我的网站主页上显示我的WordPress博客上最近的3篇文章,它一直显示相同的日期、作者和标题。但是,内容会正确更新和更改 有人能告诉我我做错了什么,为什么它没有选择正确的日期、标题和作者,而是选择了正确的内容 我的当前代码: Ajax $(document).ready(function() { GetLatestBlogPost(); }); function GetLatestBlogPost() { $.ajax( { url: "IsosecWeb/

我试图在我的网站主页上显示我的WordPress博客上最近的3篇文章,它一直显示相同的日期、作者和标题。但是,内容会正确更新和更改

有人能告诉我我做错了什么,为什么它没有选择正确的日期、标题和作者,而是选择了正确的内容

我的当前代码:

Ajax

$(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查询循环