web-dev-qa-db-fra.com

Ajouter un champ personnalisé à tous les articles d'une catégorie spécifique

Je souhaite ajouter en vrac un champ personnalisé (catégorie) avec une valeur (photographie) à tous les articles d'une catégorie spécifique (photographie, avec la catégorie 5).

J'ai utilisé le code ci-dessous pour ajouter en bloc un champ personnalisé à tous les articles, mais comment puis-je le réduire à une catégorie spécifique? N'importe qui?

C'est le code que j'ai utilisé pour tous les posts:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT wp_posts.ID, 'category', 'photography'
FROM wp_posts
WHERE wp_posts.post_status = 'publish'
1
AKNL

Vous pouvez utiliser les fonctions WordPress pour faire cela et simplement l'exécuter une fois, un exemple rapide serait.

function wpse_85236_add_photo_field(){

global $post;
$photoquery = new WP_Query('posts_per_page=-1');

while ( $photoquery->have_posts() ) : $photoquery->the_post();

    if ( in_category( 'photography' )) {
    add_post_meta($post->ID, 'category', 'photography', true);
    }

endwhile;
}
add_action( 'init', 'wpse_85236_add_photo_field' );

N'oubliez pas de supprimer la fonction après son exécution car vous ne voulez pas qu'elle s'exécute à chaque chargement.

1
Wyck