我在每篇文章中都有一个名为“prijs”的元键。此元键的值由以下结构中的数字组成:2100.00
我想删除元值中的逗号以获得此输出:2100.00
因此,我创建了一个函数,但它不起作用:
add_action(\'wp_insert_post\', \'deleteCommaDB\');
function deleteCommaDB($postID){
$price_key = \'prijs\';
$getPrice = get_post_meta($postID, $price_key, true);
$newPrice = str_replace(array(\',\'), \'\', $getPrice);
update_post_meta($postID, $price_key, $newPrice);
return true;
}
我创建了函数
deleteCommaDB
. 此函数从元键“prijs”获取post元,并替换逗号。此新值保存在变量$newPrice中。接下来要做的是用新值更新post meta。
我做错了什么?
最合适的回答,由SO网友:helgatheviking 整理而成
你只需要运行一次,但这应该会得到你所有的帖子,然后循环浏览并更新meta。
add_action(\'admin_init\', \'deleteCommaDB\');
function deleteCommaDB(){
// The Query
$args = array ( \'posts_per_page\' => -1 );
$the_query = new WP_Query( $args );
// The Loop
while ( $the_query->have_posts() ) :
$the_query->the_post();
$price_key = \'prijs\';
$getPrice = get_post_meta( get_the_ID(), $price_key, true);
$newPrice = str_replace(array(\',\'), \'\', $getPrice);
update_post_meta(get_the_ID(), $price_key, $newPrice);
endwhile;
}
您的函数仅在插入帖子时运行。您可能需要考虑
save_post
以及消毒
$_POST
首先输入。