X

Cómo crear una página cuando el tema está activado

Snippets de IsItWP

¿Estás buscando una forma de crear una o varias páginas automáticamente al activar un tema? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para crear una nueva página en WordPress.

Si quieres que tu tema o plugin cree una nueva página (o dos o tres) por sí solo, aquí tienes un código rápido para hacerlo. wp_insert_post devuelve el ID de la página recién creada. En caso de error, devolverá 0 si $wp_error está establecido en false, o un objeto WP_Error si $wp_error está establecido en true.

Instrucciones:

Todo lo que tienes que hacer es añadir este código al archivo index.php de tu tema, antes del hook.

Y por supuesto, este código podría usarse para crear un POST o cualquier otro contenido de Tipo de Publicación Personalizada simplemente cambiando el valor de post_type.

<?php
$new_page = array(
	'slug' => 'this-is-my-new-page',
	'title' => 'Write a Headline that Captivates',
	'content' => "Enter the body Content for your Page here"
);
$new_page_id = wp_insert_post( array(
	'post_title' => $new_page['title'],
	'post_type' 	=> 'page',
	'post_name'	 => $new_page['slug'],
	'comment_status' => 'closed',
	'ping_status' => 'closed',
	'post_content' => $new_page['content'],
	'post_status' => 'publish',
	'post_author' => 1,
	'menu_order' => 0
));
?>

O, podrías usar este código en su lugar. Este fragmento verifica si ya existe una página con el título en la línea 3 y crea la página si aún no existe. También establece una plantilla de página si se proporciona una plantilla de página en la línea 5.

Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:

if (isset($_GET['activated']) && is_admin()){
 
    $new_page_title = 'This is the page title';
    $new_page_content = 'This is the page content';
    $new_page_template = ''; //ex. template-custom.php. Leave blank if you don't want a custom page template.
 
    //don't change the code bellow, unless you know what you're doing
 
    $page_check = get_page_by_title($new_page_title);
    $new_page = array(
        'post_type' => 'page',
        'post_title' => $new_page_title,
        'post_content' => $new_page_content,
        'post_status' => 'publish',
        'post_author' => 1,
    );
    if(!isset($page_check->ID)){
        $new_page_id = wp_insert_post($new_page);
        if(!empty($new_page_template)){
            update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
        }
    }
 
}

Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.

Si te gustó este fragmento de código, por favor considera revisar nuestros otros artículos en el sitio como: 27 mejores temas de WordPress para blogs de viajes y cómo proteger tus formularios de WordPress con contraseña.

Comentarios   Dejar una respuesta

  1. Suman Samanta March 3, 2019 at 5:37 am

    Si tuviera que dar un ejemplo principal de contenido de gran calidad, este artículo sería uno. Es material bien escrito que mantiene tu interés.

  2. Gracias. Exactamente necesito esto. ¿Me avisas con qué hook debería engancharse este código?

  3. ¡Gracias, hombre! ¿Tienes una solución para insertar taxonomías automáticamente?

  4. Hola, en mi plugin se genera automáticamente una página y también un shortcode. Quiero que en la página de detalle no se muestren la cabecera, el pie de página ni la barra lateral. ¿Alguna idea, por favor?

  5. Hola Kevin. ¿Cómo crear múltiples páginas con este método? Gracias..

  6. Supongo que no hay forma de dirigir a los usuarios a la página después de la activación, ¿sin importar qué permalink tengan configurado?

    Quería usar esto para crear una página de preguntas frecuentes del tema y dirigir al usuario a ella después de la activación.

    1. No creo que esa sea la mejor manera de hacer las cosas. Lo que podrías hacer es crear una página de administración, muy parecido a lo que hace la gente cuando crea un plugin, y añadir tus preguntas frecuentes u otros detalles allí. Este tutorial en net.tuts tiene detalles sobre cómo crear el panel de administración para un plugin, pero la idea es la misma.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

      1. Sí, probablemente tengas razón. Estoy usando un tema hijo para Twenty Eleven y aún no he descubierto cómo conectarme a las opciones del tema actual. Probablemente solo crearé una página HTML con la información que necesito y la enlazaré, pero revisaré ese enlace, gracias.

        1. Hola Zeaks,

          ¡El tutorial que publiqué debería funcionar bien! No debería importar el tema que estés usando, el código en el tutorial solo te pedirá que agregues código a tu functions.php para crear el panel de administración, luego solo es html para estilizar y mostrar tus preguntas frecuentes u otra información.

    2. No creo que esa sea la mejor manera de hacer las cosas. Lo que podrías hacer es crear una página de administración, muy parecido a lo que hace la gente cuando crea un plugin, y añadir tus preguntas frecuentes u otros detalles allí. Este tutorial en net.tuts tiene detalles sobre cómo crear el panel de administración para un plugin, pero la idea es la misma.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

  7. ¡Genial! ¡Muchas gracias!
    Acabo de usar tu código para agregar elementos de menú también.
    (‘post_type’ => ‘nav-menu-item’)

    1. Hola Tyson, genial, me alegra haber podido ayudar. No olvides seguirme en Twitter, Facebook o RSS. Publico nuevos fragmentos regularmente.

  8. Cliff Paulick July 19, 2011 at 6:56 pm

    Disculpa si es una pregunta tonta, pero ¿por qué querrías hacer esto?
    Tengo una instalación de prueba de WP donde creo manualmente una nueva publicación (o a veces una página) cada vez que activo un nuevo plugin, para probar lo que puede hacer. Puedo ver el beneficio de un generador de páginas/publicaciones para esa acción, pero no estoy seguro de por qué una nueva página para activar un tema. Por favor, ayúdame a entender. ¡Gracias!

    1. No existe tal cosa como una pregunta tonta en wpsnipp, esta es una buena pregunta. Digamos que tengo un tema nuevo que funcionará más como un CMS con una página de inicio estática por defecto. Podrías usar esto en tu tema para crear las páginas necesarias para la persona en lugar de pedirle que lo haga manualmente. De esta manera, podría crear cualquier número de páginas necesarias para un tema que estuviera creando, y luego todo lo que la persona necesitaría hacer es vincular las páginas a las plantillas requeridas. Pero este es solo un ejemplo, podría haber razones en las que ni siquiera podamos pensar.

      1. Cómo agrego esta nueva página creada por tu código en el menú principal. ('post_type' => 'nav-menu-item') no me funciona

    2. Esto es algo antiguo, pero para mí, estoy creando un tema y configurando una página personalizada que creará un mapa del sitio, y quiero enlazar a ese mapa del sitio en el pie de página.

      Este es un gran fragmento de código, me permite saber con seguridad que esta página del mapa del sitio estará allí todo el tiempo.

  9. Tweets that mention Wordpress Create page on theme activation – wpsnipp.com Wordpress code snippets for your blog -- Topsy.com November 24, 2010 at 4:32 pm

    […] Esta publicación fue mencionada en Twitter por wp_freak, WPSNIPP. WPSNIPP dijo: #wordpress Crea una página al activar el tema http://bit.ly/gTZHVl #blog por favor RT 🙂 […]

Agregar un comentario

Nos complace que hayas elegido dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de privacidad, y todos los enlaces son nofollow. NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

Lista de verificación para lanzar WordPress

La lista de verificación definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de verificación para el lanzamiento de tu próximo sitio web de WordPress en un práctico ebook.
¡Sí, envíame el eBook gratis!