Hromadná úprava meta polí ve WordPress

Pokud potřebujete hromadně změnit hodnotu nějakého custom field patřícího k příspěvkům, stránkám nebo vlastním post types, tak se vám bude hodit tento snippet.

Příklad 1: univerzální funkce pro úpravu meta polí

/**
 * Hromadná změna meta_value
 */
function bunch_meta_value_update($post_type = null, $posts_per_page = -1, $meta_key = null, $meta_value = null)
{
    $args = [];
    $args['post_type'] = $post_type;
    $args['posts_per_page'] = $posts_per_page;

    $posts = get_posts($args);

    foreach ($posts as $post) {

        update_post_meta( $post->ID, $meta_key, $meta_value);
        
    }
}
// parametry slug post typu, počet načtených příspěvků, meta_key = klíč označení pole, meta_value = hodnota, na kterou se změní)
bunch_meta_value_update('product', -1, '_regular_price', 99.99  );

Fukce get_posts() načte příspěvky dle zadaných argumentů, které jsou prakticky stejné, jako u třídy WP_Query.

Příklad 2: Změna náhledového obrázku, pro všechny příspěvky v kategorii

// Id kategorie zjistíš v administraci

foreach( get_posts( [ 'category' => '94', 'numberposts' => -1 ]) as $post_objekt ){

  // 1720 nahraď Id obrazku, který máš uložený v mediích

  set_post_thumbnail( $post_objekt, 1720 );

}
Jetpack
Zobrazeno 91 krát.
Štítky:
Vyber si svůj svou reakci!