2014-04-20 1 views
1

Ci-dessous est mon code qui prendra le post_id et aléatoirement 3 messages de la même catégorie et les stocker en tant que champ personnalisé. Le code fonctionne clairement, car lorsque je clique sur "Nouveau message", le champ personnalisé est rempli, mais lorsque je clique sur "Publier" ou "Enregistrer", le code ci-dessous n'est pas exécuté, d'après ce que je comprends, Save_Post sera appelé une fois lors de la création de nouveau poste et une fois de plus lorsque vous enregistrez réellement le poste. Chose amusante est que le code ci-dessous fonctionne dans le serveur local, WAMP, mais pas sur mon serveur de production, je ne sais pas pourquoi. Ils utilisent tous les mêmes plugins.Wordpress save_post action ne se déclenche pas lors de la sauvegarde

function update_postmeta($post_id) { 
global $post; 

if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
return; 
} 

unset($rand_id); 

$cat_id = get_the_category($post_id); 

$args = array(
    'showposts' => 3, 
    'orderby' => 'rand', 
'cat' => $cat_id[0]->cat_ID, 
); 
$my_query = new WP_Query($args); 
while ($my_query->have_posts()) : $my_query->the_post(); 
    $rand_id = $rand_id.get_the_ID().','; 
endwhile; update_post_meta($post_id, 'related_id',$rand_id); 
} add_action('save_post', 'update_postmeta'); 

Répondre

1

essayer

if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
return($post_id); 
} 
+0

Merci, ce n'est pas la solution. Quoi qu'il en soit, j'ai écrit un petit programme pour faire ce qui précède pour moi. Merci encore. –