Wordpress 获取数据并推入数组

问题描述 投票:0回答:2

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

)


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

php wordpress foreach
2个回答
1
投票

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

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


1
投票

这些函数(the_title、the_content 等)不返回值,它们

echo
将它们输出。他们也不接受 ID 参数。您需要使用
get_the_title
get_the_content
等返回字符串的版本。

© www.soinside.com 2019 - 2024. All rights reserved.