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 );
}
}
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
.