admin管理员组文章数量:1134248
For a custom plugin with add start and end date of event/post, I must generate several datetime with the same meta key to compare the period of event with the period of weeks. I my case I'm obliged to compare each day date of event with these of period because the 'key'=>
of meta_query can't be a array.
The user will have the choice with current week, week +1 and week+ 2 and 3.
I created a script to generate all days between start and end of event. Depending on my custom plugin script to add/update several _post_meta(), I include each meta key inside an array.
The period event is from 12 to 28 September : my script generate these date :
2023-09-12 00:00:00
2023-09-13 00:00:00
2023-09-14 00:00:00
2023-09-15 00:00:00
2023-09-16 00:00:00
2023-09-17 00:00:00
2023-09-18 00:00:00
2023-09-19 00:00:00
2023-09-20 00:00:00
2023-09-21 00:00:00
2023-09-22 00:00:00
2023-09-23 00:00:00
2023-09-24 00:00:00
2023-09-25 00:00:00
2023-09-26 00:00:00
2023-09-27 00:00:00
2023-09-28 23:59:59
Each date ($date) is converted into a datetime to obtain a timestamp.
In meta_query
these dates are compared with those of the selected week :
from 2023-09-18 00:00:00 to 2023-09-24 00:00:00
How can I output these datetime allocating a variable to each to obtain as many times this variable as there are dates generated
$events_meta['timestamps_between'] = strtotime($date);
foreach ($period as $date) {
$events_meta['timestamps_between'] .= strtotime($date);
}
My script call many meta_key
and I called them inside this foerreach :
foreach ( $events_meta as $key => $value ) {
add_post_meta( $post->ID, $key, $value );
//if($key = 'timestamps_between'){
//print_r($key .' and '. $value);
//}
}
Online test
For a custom plugin with add start and end date of event/post, I must generate several datetime with the same meta key to compare the period of event with the period of weeks. I my case I'm obliged to compare each day date of event with these of period because the 'key'=>
of meta_query can't be a array.
The user will have the choice with current week, week +1 and week+ 2 and 3.
I created a script to generate all days between start and end of event. Depending on my custom plugin script to add/update several _post_meta(), I include each meta key inside an array.
The period event is from 12 to 28 September : my script generate these date :
2023-09-12 00:00:00
2023-09-13 00:00:00
2023-09-14 00:00:00
2023-09-15 00:00:00
2023-09-16 00:00:00
2023-09-17 00:00:00
2023-09-18 00:00:00
2023-09-19 00:00:00
2023-09-20 00:00:00
2023-09-21 00:00:00
2023-09-22 00:00:00
2023-09-23 00:00:00
2023-09-24 00:00:00
2023-09-25 00:00:00
2023-09-26 00:00:00
2023-09-27 00:00:00
2023-09-28 23:59:59
Each date ($date) is converted into a datetime to obtain a timestamp.
In meta_query
these dates are compared with those of the selected week :
from 2023-09-18 00:00:00 to 2023-09-24 00:00:00
How can I output these datetime allocating a variable to each to obtain as many times this variable as there are dates generated
$events_meta['timestamps_between'] = strtotime($date);
foreach ($period as $date) {
$events_meta['timestamps_between'] .= strtotime($date);
}
My script call many meta_key
and I called them inside this foerreach :
foreach ( $events_meta as $key => $value ) {
add_post_meta( $post->ID, $key, $value );
//if($key = 'timestamps_between'){
//print_r($key .' and '. $value);
//}
}
Online test
Share Improve this question edited Sep 24, 2023 at 20:25 imagIne asked Sep 24, 2023 at 17:01 imagIneimagIne 10511 bronze badges1 Answer
Reset to default 0Problem Solved but solution not reusable.
I'd like some advice or a solution to assign the same meta_key to each datetime generated.
Based from this answer : to assign variables to each datetime from foreach loop I do that (but I think it's a bad idea to change the name of the array keys using the is_int() function to target the key integers):
- create an array ($events_meta)
- Inside a foreach loop, call the dates of DatePeriod
My solution is only usable because I only use is_int for the 'timestamps_between' meta_key.
$start = $beginOfDayObject;
$interval = new DateInterval('P1D');
$end = $excludeObject;
$period = new DatePeriod($start, $interval, $end);
$events_meta = array();
foreach ($period as $date) {
$events_meta[] = $periodtotime."\n";
}
each new meta_key will be read by this foreach loop: (The condition using is_int() allow to replace all keys integer by the meta_key.)
foreach ( $events_meta as $key => $value ) {
if(is_int($key) ) $key ='timestamps_between';
add_post_meta( $post->ID, $key, $value );
}
本文标签: plugin developmentHow to assign to each output values from foreach loop to a metakey
版权声明:本文标题:plugin development - How to assign to each output values from foreach loop to a meta_key? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736793646a1953193.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论