Estoy tratando de crear un tema que requiera la inclusión de páginas específicas. ¿Hay alguna manera de crear páginas automáticamente y asignarlas a sus plantillas de página cuando se instala un tema?
theme-development
pages
installation
JonnyPlow
fuente
fuente
Respuestas:
El enlace anterior está roto. :(
La forma estándar es a través de
wp_insert_post
. Obtiene mucha información sobre WP Codex: http://codex.wordpress.org/Function_Reference/wp_insert_postfuente
Tuve una situación similar en la que necesitaba agregar una página en la activación del tema y configurarla como página de inicio automáticamente.
Así es como lo hice:
Espero que esto ayude a alguien.
Actualizar:
Gracias Maruti Mohanty .
fuente
Esta es una mala práctica. Los temas son para presentación, son visuales, no deberían dictar contenido real. Si lo hacen, entonces lo estás haciendo mal y tu código sería mejor como un complemento.
Sin embargo, si su tema tiene una disposición de contenido 'prevista', no debe crear automáticamente las páginas / contenido, no debe entrometerse en absoluto con el contenido de los usuarios, podría estar rompiendo otras cosas.
En su lugar, permita que el usuario seleccione qué páginas deben usarse, de la misma manera que la configuración le permite elegir una página estática en lugar de las últimas publicaciones, y cómo los complementos como Woocommerce o Jigoshop le permiten elegir qué página es la página de pago, etc. plugins, está bien que creen páginas de esa manera).
De todos modos, esto indica una falla fundamental en su enfoque para crear su tema (o está creando algo para un cliente, y ha decidido facilitarle la instalación, creando más trabajo para usted, mientras que sería mejor ofrecerle instálelo usted mismo por una tarifa, que sería más rentable).
Si eres lo suficientemente tonto como para intentarlo de todos modos ...
Consulte http://codex.wordpress.org/Function_Reference/wp_insert_post
Pero, deberá verificar cada 'init' para ver si las páginas existen. Si no los crean y actualizan una opción en alguna parte para que recuerde que se crearon y no verificar la próxima vez, de lo contrario terminará con más páginas creadas en cada carga de página.
fuente
Usando el código en esta respuesta y una
wp_insert_post
que encontré en este tema .fuente