我想从 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] =>
)
)
发生什么事了?为什么数据没有正确放入数组中?
任何建议都非常感谢。
这些模板标签需要将其 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
这些函数(the_title、the_content 等)不返回值,它们
echo
将它们输出。他们也不接受 ID 参数。您需要使用 get_the_title
、get_the_content
等返回字符串的版本。