web-dev-qa-db-fra.com

wp_insert_posts continue à ajouter plusieurs pages

J'ai une fonction qui crée une page, mais je ne veux qu'une page et le code ci-dessous continue d'ajouter plusieurs pages (2 à la fois). Existe-t-il un moyen d'ajouter un seul poste? J'ai fatigué cette solution mais cela n'a pas fonctionné.

$my_post  = array( 
               'post_title'     => 'My page Reql',
               'post_type'      => 'page',
               'post_name'      => 'archive',
               'post_content'   => 'This is my page reql.',
               'post_status'    => 'publish',
               'comment_status' => 'closed',
               'ping_status'    => 'closed',
               'post_author'    => 1,
               'menu_order'     => 0,
               'guid'           => site_url() . '/archive' );
$PageID = wp_insert_post( $my_post, FALSE ); // Get Post ID - FALSE to return 0 instead of wp_error.
1
Gregory Schultz

Vous pouvez vérifier si la page existe ou non, et ne la créer que si elle n'existe pas déjà. get_page_by_title() peut vous aider dans ce cas:

// Check if the page already exists
if( ! get_page_by_title('My page Reql') ) {
    // The page doesn't exist, so let's create it
}

En outre, vous voudrez peut-être examiner comment vous appelez la fonction. Vous l'appelez peut-être deux fois, c'est peut-être pour cela qu'il crée une copie de chaque message.

3
Jack Johansson