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 );
}
Zobrazeno 91 krát.