0

对于自定义帖子类型“bedrijf”,我创造了访问者可以留下评分的可能性。如果他们这样做,则添加并保存元键和值。如果有多个,则计算平均值并更新值字段。

但是,大多数自定义帖子还没有元键和值,我希望它们有一个值为“0”的帖子。

到目前为止我得到的代码:

function create_metadata(){
    $args = array(
        'post_type' => 'bedrijf',
        'posts_per_page'   => -1,
    );
    $posts = get_posts($args);
    foreach ( $posts as $post ) {
        $av = get_post_meta($post->ID, 'averagerating', true);
        if (!isset($av)){
        add_post_meta( $post->ID, 'averagerating', '0' );
    }
    }
}
add_action('init','create_metadata');

但到目前为止,这并没有奏效。

4

1 回答 1

0

我发现了问题,我不得不像这样使用“新查询”:

function create_metadata(){
        $query = new WP_Query(array(
        'post_type' => 'bedrijf',
        'posts_per_page' => -1,
        ));
    while ($query->have_posts()) {
        $query->the_post(); 
    if(!null == get_post_meta( get_the_ID(), 'averagerating', true )){
        add_post_meta( get_the_ID(), 'averagerating', '0' );
    }
}
于 2020-02-21T10:32:21.687 回答