J'ai un site qui compte plus de 1000 publications, après avoir récemment ajouté un nouveau champ personnalisé (avec ACF), bien entendu, les données post_meta n'existent pas tant que je n'ai pas parcouru chaque publication et ne l'ai mise à jour avec une valeur.
Alors ive trouvé ce code:
function my_acf_load_value( $value, $post_id, $field ) {
$value = get_the_title();
return $value;
}
add_filter('acf/load_value/name=Amazon_keywords', 'my_acf_load_value', 10, 3);
Ce qui définit la valeur par défaut du champ sur wp-title. Ainsi, lorsque je passe à un article, le titre de l'article est déjà entré dans le champ personnalisé, prêt à être sauvegardé.
Dans cet esprit, y a-t-il un moyen de le faire sans avoir à aller dans tous les posts et à le sauvegarder? Vous aimez une mise à jour groupée? J'ai essayé de mettre à jour en masse à partir de l'écran des listes de publication, mais cela ne semble pas exécuter la sauvegarde des champs personnalisés.
Vous pouvez ajouter une nouvelle action en bloc pour les publications contenant ce code:
$postType = "post";
add_filter("bulk_actions-edit-" . $postType, function ($actions) {
$actions["specialSave"] = "Special save";
return $actions;
}, 20);
add_filter("handle_bulk_actions-edit-" . $postType, function ($sendback, $doaction, $post_ids) {
if ("specialSave" !== $doaction) {
return;
}
foreach ($post_ids as $idPost) {
// action to do for each selected post
}
return $sendback;
}, 10, 3);
si une simple sauvegarde ne suffit pas pour définir la valeur, vous pouvez utiliser ce code pour définir la valeur directement pour chaque publication sélectionnée.