我有一个重复字段,它将文本项存储在一个数组中,如下所示:
[0] =>
[1] => NUC Lights
[2] => Smoke Alarm
[3] => Binoculars
您将注意到键A没有值,并且它们没有按字母顺序排列。我要做的是获取上面的数组,删除空值,对其排序,然后按如下方式重新保存:
[0] => Binoculars
[1] => NUC Lights
[2] => Smoke Alarm
这是我当前的代码:
// Post Types to include
$post_args = array(
\'posts_per_page\' => -1,
\'post_type\' => array(
\'boat\'
),
);
// The Query
$post_query = new WP_Query( $post_args );
$posts = $post_query->posts;
foreach($posts as $post) {
$boat_safety_terms = get_post_meta( $post->ID, \'wpcf-all-safety-terms\', false );
$boat_safety_terms_cleaned = array_filter( $boat_safety_terms );
$boat_safety_terms_cleaned_sorted = sort( $boat_safety_terms_cleaned );
error_log( print_r( $boat_safety_terms_cleaned_sorted, TRUE ) );
}
但我的日志只显示
1
因为某种原因,每艘船都有。知道它可能出了什么问题吗?
另外,我想我会使用update_post_meta
要将阵列保存回字段?
最合适的回答,由SO网友:Rup 整理而成
$boat_safety_terms_cleaned_sorted = sort( $boat_safety_terms_cleaned );
error_log( print_r( $boat_safety_terms_cleaned_sorted, TRUE ) );
PHP\'s sort 接受数组引用并就地排序,并返回成功或失败-因此得到1。您需要:
sort( $boat_safety_terms_cleaned );
error_log( print_r( $boat_safety_terms_cleaned, TRUE ) );
另外,我假设我想使用update\\u post\\u meta将数组保存回字段?
是的,那很好。我假设这是一种实用方法,您可以在每篇文章中手动触发一次,而不是理所当然地运行它?如果是保存一艘船,那么可能有更好的方法在保存时过滤该值,具体取决于您的操作方式。