0

我想从 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] => 
        )

)


到底是怎么回事?为什么数据没有正确放入数组? 任何建议都非常感谢。

4

2 回答 2

1

这些函数(the_title、the_content 等)不返回值,而是将echo它们输出。他们也不接受 ID 参数。您需要使用get_the_title,get_the_content等返回字符串的版本。

于 2012-09-07T15:43:59.977 回答
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

于 2012-09-07T15:44:17.257 回答