Wordpress获取数据并推入阵列

时间:2012-09-07 15:36:23

标签: foreach wordpress

我想从WordPress DB获取数据,将它们推入数组并将数据传递给JS。

除了将数据推送到foreach ($posts as $post)中的数组外,

完成所有工作。

完整方法:

        $array = array(); 
        $category_name = "locations";
        $args = array(
            'numberposts' => -1,
            'category_name' => $category_name
        );

        $posts = get_posts($args);      
        foreach ($posts as $post){
            array_push( $array, array(

                "title" => the_title($post->ID),
                "cnt" => the_content($post->ID),
                "id" => the_ID($post->ID),
                "link" => the_permalink($post->ID)

            )); 
        }

当我print_r($array)时,我得到了以下混音:

Post 39http://localhost:8080/testing/post-3/Post 27http://localhost:8080/testing/post-2/Post 15http://localhost:8080/testing/post-1/Array
(
    [0] => Array
        (
            [title] => 
            [cnt] => 
            [id] => 
            [link] => 
        )

    [1] => Array
        (
            [title] => 
            [cnt] => 
            [id] => 
            [link] => 
        )

    [2] => Array
        (
            [title] => 
            [cnt] => 
            [id] => 
            [link] => 
        )

)


发生了什么事?为什么数据没有正确放入数组? 任何建议都非常赞赏。

2 个答案:

答案 0 :(得分:1)

这些函数(the_title,the_content等)不返回值,它们echo输出。他们也不接受ID论证。您需要使用get_the_titleget_the_content等返回字符串的版本。

答案 1 :(得分:1)

这些模板标签需要将其echo变量设置为false才能在该上下文中工作。他们也不会将帖子ID作为变量,如果设置了postdata,他们会假设当前帖子。尝试:

the_title('','',false)

https://codex.wordpress.org/Function_Reference/the_title


- 〜 - 〜 - 〜 - 〜 - ~~~~~~澄清编辑 - 〜 - 〜 - 〜 - 〜 - ~~~~~

这个问题的最整洁的解决方案实际上是直接解决wp $post对象。因此,对于标题字符串$post->post_title和内容$post->post_content

此处列出$post对象中可用的字段:

http://codex.wordpress.org/Function_Reference/get_post#Return