如何从多维数组中的 WP_Query 数组中获取发布数据? [英] How to get post data form WP_Query array in multidimensional array?
问题描述
如何从 object(WP_Query)
获取 $value
数组值?
post_content、ID、页面名称、类别等.
这是我的代码:
<预><代码>全球 $post;$args = 数组('post_type' =>'历史','订单' =>'ASC');$master = [];$post_query = new WP_Query($args);如果 ($post_query->have_posts() ) {而 ($post_query->have_posts()) {$post_query->the_post();/* 获取发布日期 */$year = get_the_date('Y');$mon = get_the_date('M');$master[$year][$mon][] = $post_query;}foreach ($master as $masterkey => $mastervalue) {回声<p>";回声主密钥:".$万能钥匙.<br>";foreach($mastervalue as $key => $value) {回声键:".$key .<br>";回声值:".$价值.<br>";}回声</p>";}}wp_reset_postdata();var_dump for $value
数组:
array(1) { [0]=>object(WP_Query)#2459 (51) { [查询"]=>array(2) { [post_type"]=>string(7) 历史";[订单"]=>字符串(3)ASC";} [query_vars"]=>数组(63){[post_type"]=>string(7) 历史";[订单"]=>字符串(3)ASC";[错误"]=>字符串(0)"[m"]=>字符串(0)"[p"]=>int(0) [post_parent"]=>字符串(0)"[子帖子"]=>字符串(0)"[subpost_id"]=>字符串(0)"[附件"]=>字符串(0)"[attachment_id"]=>int(0) [名称"]=>字符串(0)"[页面名称"]=>字符串(0)"[page_id"]=>int(0) [第二个"]=>字符串(0)"[分钟"]=>字符串(0)"[小时"]=>字符串(0)"[天"]=>int(0) [monthnum"]=>int(0) [年"]=>int(0) [w"]=>int(0) [category_name"]=>字符串(0)"[标签"]=>字符串(0)"[猫"]=>字符串(0)"[tag_id"]=>字符串(0)"[作者"]=>字符串(0)"[作者姓名"]=>字符串(0)"[饲料"]=>字符串(0)"[tb"]=>字符串(0)"[分页"]=>int(0) [meta_key"]=>字符串(0)"[元值"]=>字符串(0)"[预览"]=>字符串(0)"[s"]=>字符串(0)"[句子"]=>字符串(0)"[标题"]=>字符串(0)"[字段"]=>字符串(0)"[menu_order"]=>字符串(0)"[嵌入"]=>字符串(0)"[category__in"]=>array(0) { } [category__not_in"]=>array(0) { } [category__and"]=>array(0) { } [post__in"]=>array(0) { } [post__not_in"]=>array(0) { } [post_name__in"]=>array(0) { } [tag__in"]=>array(0) { } [tag__not_in"]=>array(0) { } [tag__and"]=>array(0) { } [tag_slug__in"]=>array(0) { } [tag_slug__and"]=>array(0) { } [post_parent__in"]=>array(0) { } [post_parent__not_in"]=>array(0) { } [author__in"]=>array(0) { } [author__not_in"]=>array(0) { } [ignore_sticky_posts"]=>bool(false) [suppress_filters"]=>bool(false) [cache_results"]=>bool(true) [update_post_term_cache"]=>bool(true) [lazy_load_term_meta"]=>bool(true) [update_post_meta_cache"]=>bool(true) [posts_per_page"]=>int(10) [nopaging"]=>bool(false) [comments_per_page"]=>字符串(2)50"[no_found_rows"]=>bool(false) } [tax_query"]=>object(WP_Tax_Query)#2465 (6) { [查询"]=>数组(0){}[关系"]=>字符串(3)与"[table_aliases":受保护]=>array(0) { } [queried_terms"]=>array(0) { } [primary_table"]=>string(11) "pkctU_posts";[primary_id_column"]=>字符串(2)ID"} ["meta_query"]=>对象(WP_Meta_Query)#2452(9){ [查询"]=>数组(0){}[关系"]=>NULL [meta_table"]=>NULL [meta_id_column"]=>NULL [primary_table"]=>NULL [primary_id_column"]=>NULL [table_aliases":protected]=>数组(0){}[子句":受保护]=>数组(0){}[has_or_relation":受保护]=>bool(false) } [date_query"]=>bool(false) [请求"]=>string(295) "SELECT SQL_CALC_FOUND_ROWS pkctU_posts.ID FROM pkctU_posts WHERE 1=1 AND pkctU_posts.post_type = 'history' AND (pkctU_posts.post_status = 'publish' OR pkctU_posts.post_status ='OR pkctU_posts.post_status ='dp-rewrite-republish') ORDER BY pkctU_posts.post_date ASC LIMIT 0, 10"[帖子"]=>数组(8) { [0]=>object(WP_Post)#2458 (24) { [ID"]=>int(3786) [post_author"]=>字符串(1)1"[post_date"]=>字符串(19)2016-01-24 18:34:38"[post_date_gmt"]=>字符串(19)2016-01-24 15:34:38"[post_content"]=>字符串(1937)"在 vero eos et accusam et justo duo dolores et ea rebum.Stet clita kasd gubergren,无海 takimata sanctus est Lorem ipsum dolor 坐 amet.Lorem ipsum dolor sat amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut Labore et dolore magna aliquyam erat, sed diam voluptua.
如果此问题与 你的这个问题,你需要以这种格式的每篇文章的标题Year >月 >每个帖子的标题
,那么你可以使用以下代码:
$posts = get_posts(array('post_type' =>'历史','posts_per_page' =>-1,'orderby' =>'日期'));$master = [];foreach ($posts as $post) {setup_postdata($post);$time = strtotime($post->post_date);$year = date('Y', $time);$mon = date('F', $time);$master[$year][$mon][] = $post->post_title;}wp_reset_postdata();foreach ((array)$master as $yearly => $yvalue) {回声 $yearly .":<br>>回声<ul>";foreach ($yvalue as $monthly => $mvalue) {echo "<li>".$每月.:</li>";回声<ul>";foreach ($mvalue as $post_title_k => $post_title_v) {echo "<li>".$post_title_v .</li>";}echo "</ul>";}echo "</ul>";}
请注意,我使用了 post 对象
中的 post_title
.这将返回以下输出:
2021:一月:1.帖子标题2.帖子标题行进:3.帖子标题2020:可能:4.帖子标题
当您使用 get_posts
时,它将返回 post 对象
.每个对象包括以下内容:
WP_Post 对象([ID] =>[post_author] =>[post_date] =>[post_date_gmt] =>[post_content] =>[post_title] =>[post_excerpt] =>[post_status] =>[评论状态] =>[ping_status] =>[post_password] =>[post_name] =>[to_ping] =>[ping] =>[后修改] =>[post_modified_gmt] =>[post_content_filtered] =>[post_parent] =>[指南] =>[menu_order] =>[post_type] =>[post_mime_type] =>[评论计数] =>[过滤器] =>)
在上面的代码中,我在这一行中访问了 $post->post_title
$master[$year][$mon][] = $post->post_title
.
How can I get $value
array values from object(WP_Query)
?
post_content, ID, pagename, category etc..
Here is my code:
global $post;
$args = array(
'post_type' => 'history',
'order' => 'ASC'
);
$master = [];
$post_query = new WP_Query($args);
if ($post_query->have_posts() ) {
while ($post_query->have_posts()) {
$post_query->the_post();
/* Get Post Date */
$year = get_the_date( 'Y' );
$mon = get_the_date( 'M' );
$master[$year][$mon][] = $post_query;
}
foreach ($master as $masterkey => $mastervalue) {
echo "<p>";
echo "masterkey: ". $masterkey . "<br>";
foreach($mastervalue as $key => $value) {
echo "key: " . $key . "<br>";
echo "value: " . $value . "<br>";
}
echo "</p>";
}
}
wp_reset_postdata();
var_dump for $value
array:
array(1) { [0]=> object(WP_Query)#2459 (51) { ["query"]=> array(2) { ["post_type"]=> string(7) "history" ["order"]=> string(3) "ASC" } ["query_vars"]=> array(63) { ["post_type"]=> string(7) "history" ["order"]=> string(3) "ASC" ["error"]=> string(0) "" ["m"]=> string(0) "" ["p"]=> int(0) ["post_parent"]=> string(0) "" ["subpost"]=> string(0) "" ["subpost_id"]=> string(0) "" ["attachment"]=> string(0) "" ["attachment_id"]=> int(0) ["name"]=> string(0) "" ["pagename"]=> string(0) "" ["page_id"]=> int(0) ["second"]=> string(0) "" ["minute"]=> string(0) "" ["hour"]=> string(0) "" ["day"]=> int(0) ["monthnum"]=> int(0) ["year"]=> int(0) ["w"]=> int(0) ["category_name"]=> string(0) "" ["tag"]=> string(0) "" ["cat"]=> string(0) "" ["tag_id"]=> string(0) "" ["author"]=> string(0) "" ["author_name"]=> string(0) "" ["feed"]=> string(0) "" ["tb"]=> string(0) "" ["paged"]=> int(0) ["meta_key"]=> string(0) "" ["meta_value"]=> string(0) "" ["preview"]=> string(0) "" ["s"]=> string(0) "" ["sentence"]=> string(0) "" ["title"]=> string(0) "" ["fields"]=> string(0) "" ["menu_order"]=> string(0) "" ["embed"]=> string(0) "" ["category__in"]=> array(0) { } ["category__not_in"]=> array(0) { } ["category__and"]=> array(0) { } ["post__in"]=> array(0) { } ["post__not_in"]=> array(0) { } ["post_name__in"]=> array(0) { } ["tag__in"]=> array(0) { } ["tag__not_in"]=> array(0) { } ["tag__and"]=> array(0) { } ["tag_slug__in"]=> array(0) { } ["tag_slug__and"]=> array(0) { } ["post_parent__in"]=> array(0) { } ["post_parent__not_in"]=> array(0) { } ["author__in"]=> array(0) { } ["author__not_in"]=> array(0) { } ["ignore_sticky_posts"]=> bool(false) ["suppress_filters"]=> bool(false) ["cache_results"]=> bool(true) ["update_post_term_cache"]=> bool(true) ["lazy_load_term_meta"]=> bool(true) ["update_post_meta_cache"]=> bool(true) ["posts_per_page"]=> int(10) ["nopaging"]=> bool(false) ["comments_per_page"]=> string(2) "50" ["no_found_rows"]=> bool(false) } ["tax_query"]=> object(WP_Tax_Query)#2465 (6) { ["queries"]=> array(0) { } ["relation"]=> string(3) "AND" ["table_aliases":protected]=> array(0) { } ["queried_terms"]=> array(0) { } ["primary_table"]=> string(11) "pkctU_posts" ["primary_id_column"]=> string(2) "ID" } ["meta_query"]=> object(WP_Meta_Query)#2452 (9) { ["queries"]=> array(0) { } ["relation"]=> NULL ["meta_table"]=> NULL ["meta_id_column"]=> NULL ["primary_table"]=> NULL ["primary_id_column"]=> NULL ["table_aliases":protected]=> array(0) { } ["clauses":protected]=> array(0) { } ["has_or_relation":protected]=> bool(false) } ["date_query"]=> bool(false) ["request"]=> string(295) "SELECT SQL_CALC_FOUND_ROWS pkctU_posts.ID FROM pkctU_posts WHERE 1=1 AND pkctU_posts.post_type = 'history' AND (pkctU_posts.post_status = 'publish' OR pkctU_posts.post_status = 'acf-disabled' OR pkctU_posts.post_status = 'dp-rewrite-republish') ORDER BY pkctU_posts.post_date ASC LIMIT 0, 10" ["posts"]=> array(8) { [0]=> object(WP_Post)#2458 (24) { ["ID"]=> int(3786) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2016-01-24 18:34:38" ["post_date_gmt"]=> string(19) "2016-01-24 15:34:38" ["post_content"]=> string(1937) "
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
If this question is related to this question of yours, and you need the title of each post in this format Year > Months > Title of each post
, then you could use the following code:
$posts = get_posts(array(
'post_type' => 'history',
'posts_per_page' => -1,
'orderby' => 'date'
));
$master = [];
foreach ($posts as $post) {
setup_postdata($post);
$time = strtotime($post->post_date);
$year = date('Y', $time);
$mon = date('F', $time);
$master[$year][$mon][] = $post->post_title;
}
wp_reset_postdata();
foreach ((array)$master as $yearly => $yvalue) {
echo $yearly . ": <br>";
echo "<ul>";
foreach ($yvalue as $monthly => $mvalue) {
echo "<li>" . $monthly . ": </li>";
echo "<ul>";
foreach ($mvalue as $post_title_k => $post_title_v) {
echo "<li>" . $post_title_v . "</li>";
}
echo "</ul>";
}
echo "</ul>";
}
Notice that i used post_title
from the post object
. Which will return the following output:
2021:
January:
1.Post Title
2.Post Title
March:
3.Post Title
2020:
May:
4.Post Title
When you use get_posts
it will return post objects
. Each object includes the followings:
WP_Post Object
(
[ID] =>
[post_author] =>
[post_date] =>
[post_date_gmt] =>
[post_content] =>
[post_title] =>
[post_excerpt] =>
[post_status] =>
[comment_status] =>
[ping_status] =>
[post_password] =>
[post_name] =>
[to_ping] =>
[pinged] =>
[post_modified] =>
[post_modified_gmt] =>
[post_content_filtered] =>
[post_parent] =>
[guid] =>
[menu_order] =>
[post_type] =>
[post_mime_type] =>
[comment_count] =>
[filter] =>
)
In the code above i accessed $post->post_title
in this line $master[$year][$mon][] = $post->post_title
.
这篇关于如何从多维数组中的 WP_Query 数组中获取发布数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!