【发布时间】:2016-02-05 18:44:53
【问题描述】:
主要编辑:重新定义问题,因为这可能更容易解决......
我正在尝试在 Wordpress 中使用 PHP 代码生成 JSON 微数据。我目前正在使用 foreach() 方法循环浏览页面上的帖子列表,将它们的缩略图、标题和链接数据放入一个数组中,然后我会将该数组编码为 JSON 微数据。但是,我使用 foreach() 组装的数组并没有按我想要的方式输出数据。
我花了几个小时试图让这部分数据正确输出,但无济于事。
--
我想要实现的目标(使用 print_r() 查看和测试我的 PHP 代码) - 例如而不是像[0] 这样的索引号。 [1] 等,我希望每个数组都输出[associatedMedia],如下所示:
Array
(
[associatedMedia] => Array
(
[image] => http://www.website.com/thumbnail.jpg
[name] => post title
[url] => http://www.website.com/the-post
)
[associatedMedia] => Array
(
[image] => http://www.website.com/second-thumbnail.jpg
[name] => second post title
[url] => http://www.website.com/the-second-post
)
// And so on...
)
我目前的结果:
Array
(
[0] => Array
(
[image] => http://www.website.com/first-thumbnail.jpg
[name] => first post title
[url] => http://www.website.com/the-post-one
)
[1] => Array
(
[image] => http://www.website.com/second-thumbnail.jpg
[name] => second post title
[url] => http://www.website.com/the-post-two
)
[2] => Array
(
[image] => http://www.website.com/third-thumbnail.jpg
[name] => third post title
[url] => http://www.website.com/the-post-three
) // And so on...
)
我的 foreach 方法:
// other PHP code
global $post;
global $wp_query;
$category = $wp_query->get_queried_object();
$args = array( 'category' => $category->cat_ID );
$posts = get_posts( $args );
$post_details = array();
$i = 0;
foreach( $posts as $post ) {
setup_postdata($post);
$thumb_url = wp_get_attachment_image_src( get_post_thumbnail_id(),'thumbnail' );
$post_thumbnails['image'] = $thumb_url[0];
$post_titles['name'] = get_the_title();
$post_links['url'] = get_permalink();
$post_details[$i]['image'] = $post_thumbnails['image'];
$post_details[$i]['name'] = $post_titles['name'];
$post_details[$i]['url'] = $post_links['url'];
$i++;
};
wp_reset_postdata();
print_r($post_details);
我才刚刚开始接触更高级的编程,而且我确信我上面的代码看起来很粗糙。因此,任何关于如何缩短它的帮助或提示将不胜感激。
编辑:添加更多$post相关代码
【问题讨论】:
-
你在哪里有
$postsfrom?你能给我们var_dump($posts)的结果吗? -
全局
$post变量与您所在的页面/帖子相关。如果您在存档页面上,请尝试查看 WordPress 循环和WP_Query()对象。 codex.wordpress.org/The_Loop -
我现在已将这部分代码包含在我的原始帖子中。这有帮助吗?
标签: php arrays json wordpress foreach