web-dev-qa-db-fra.com

Problème avec wp_update_post

J'essaie d'écrire un plugin qui crée une page si une case est cochée (valeur 1) et si l'identifiant de publication n'existe pas déjà. Si l'identifiant de publication existe déjà, je souhaite mettre à jour la publication avec les modifications apportées. J'ai la partie création (en tant que page) qui fonctionne très bien. Cependant, lorsque j'essaie de lancer wp_update_post, j'obtiens cette erreur:

array_merge () [function.array-merge]: l'argument n ° 1 n'est pas un tableau dans /home/wpovernight/wpovernight.com/wp-includes/post.php à la ligne 2996

Puisque l'erreur concerne post.php, j'imagine que ce problème concerne un tableau sur wp_update_post, mais je ne suis pas sûr de ce que je ne fais pas. Tout me semble bien. Voici mon code:

//Check if page exists
$page_check_404 = get_page_by_title($page_title_404);
// Checks if box is checked
if ($activate_404_page == 1) {
            $ss_404_page = array(
            'post_title'    => $page_title_404,
            'post_content'  => $ss_404_page_content,
            'post_status'   => 'publish',
            'post_author'   => 1,
            'post_type'     => 'page'
            );
            // If page doesn't exist, create it
            if(!isset($page_check_404->ID)){
            $ss_404_post_id = wp_insert_post( $ss_404_page );
            }
            //if page does exist, edit it
            if(isset($page_check_404->ID)){
                $ss_404_page_update = array(
                'post_title'    => $page_title_404,
                'ID'            => $ss_404_post_id,
                'post_content'  => $ss_404_page_content,
                'post_status'   => 'publish',
                'post_author'   => 1,
                'post_type'     => 'page'
                );
            wp_update_post( $ss_404_page_update );
            }   
}
2
Jeremiah Prummer

Le premier argument de array_merge est le tableau des anciennes valeurs extraites de la publication d'origine, et non de vos nouvelles valeurs. Je suppose donc que vous transmettez un ID de publication non valide. Dans votre tableau de nouvelles valeurs, je pense que vous souhaitez définir l'ID de publication sur $page_check_404->ID, pas $ss_404_post_id.

0
Milo