marc polizzi
Por un lado, tengo un sitio de WordPress existente.
En el otro, un montón de páginas HTML estáticas existentes y generadas (en realidad, algunas páginas de documentación): varios cientos…
Me gustaría integrar esas páginas HTML existentes en el sitio de WordPress.
No es necesario editarlos desde la consola de administración de WordPress. Simplemente para hacerlos consistentes con el aspecto general del sitio web (encabezado, pie de página, etc.) y tener la navegación (desde las páginas de WordPress) a estas páginas funcionando.
Cualquier idea si esto es posible y dónde debo buscar algunos ejemplos/tutoriales/complementos existentes.
Nota 1: tengo control total sobre el proceso de generación, por lo que el contenido de las páginas generadas se puede adaptar a las necesidades de WordPress si es necesario.
Nota 2: Todas las páginas HTML existentes se regenerarán de vez en cuando. Así que tendré que actualizar mi sitio de WordPress en consecuencia.
Antwane
Si miras el .htaccess
proporcionado por wordpress:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Esto configura las reglas de reescritura para garantizar que la URL sea bonita en su sitio de wordpress. 2 líneas interesantes son:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Estas líneas le dicen al servidor Apache que verifique si el archivo solicitado (primera línea) o la carpeta (segunda) existe. Si existe, se devuelve, si no, se aplican las reglas de reescritura (el blog se muestra como de costumbre). De modo que puede crear una carpeta en la raíz de su espacio web (a menudo www
o htdocs
) y cargue los archivos generados en él. Estos archivos serán accesibles desde su navegador (http://www.sudominio.com/sucarpeta/suarchivo.html).
Creo que esta es la forma más sencilla de mostrar contenido generado estáticamente junto a las páginas de tu blog. Con esto, deberá integrar el encabezado/pie de página/barra lateral de su tema en los archivos generados.
También puede usar la respuesta de @Binod y usar las funciones de wordpress directamente en sus páginas generadas. Ya sea ejecutando el código php desde la página *.html, ya sea generando directamente archivos *.php (si puede).
-
Esta es la mejor respuesta y probablemente la más fácil de implementar. agregando
require_once( '../wp-load.php' )
en la parte superior de cada página y luegoget_header()
&get_footer()
a las páginas donde sea necesario.– Labú
9 de enero de 2014 a las 12:26
-
@WillemLabu Puede usar auto_prepend y agregar para lograr esto automáticamente. Vea mi respuesta a continuación.
– Homero6
11 de enero de 2014 a las 9:02
Elie Andraos
Cree una plantilla de página en su tema de wordpress, llámelo “page-external.php” y el código de su página de plantilla debería ser así:
<?php
/**
* Template Name: External HTML Pages
*
*/
?>
<?php get_header(); ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : ?>
<?php the_post(); ?>
<?php the_content(); ?>
<?php endif; ?>
<?php get_footer() ?>
Esta plantilla es un bucle de wordpress básico que mostrará el contenido de la página que ingresará en el editor de texto de un administrador de página de wp. (puede modificar la plantilla si tiene barras laterales, widgets, etc.) El truco es que, en el editor de texto del administrador de su página, agregará un código abreviado de wordpress con un parámetro de la URL de la página externa para capturar
por ejemplo,
[externalpage href="http://www.mydomain.com/page"
]
para crear un shortcode, es fácil y está bien documentado en la api de wordpress
http://codex.wordpress.org/Shortcode_API
en su shortcode, para capturar el contenido de la página externa, use la función php get_file_content() o CURL si lo prefiere, pero esto debería hacerlo:
function grab_externalpage_func(){
return file_get_contents('http://www.mydomain.com/page');
}
add_shortcode( 'externalpage ', 'grab_externalpage_func' );
Entonces, al final, agregar una página externa existente será tan simple como crear una nueva plantilla de página y agregar el código abreviado en el editor de texto y eso es todo. y aún se beneficia al agregar la página al menú desde el administrador de wordpress, junto con get_header() y get_ooter() como cualquier otra página. 🙂
Puede usar php_flag en un archivo .htaccess y usar la configuración automática incorporada de PHP:
php_value auto_prepend_file "docs_header.php"
php_value auto_append_file "docs_footer.php"
-
Esto es bastante impresionante. Cada día es un día de escuela. ¡Gracias!
– Labú
13 de enero de 2014 a las 21:29
- bucle sobre ellos.
- obtener el contenido de cada página.
- inserte el cuerpo de cada página (etiquetas eliminadas) en la tabla db> wp_posts y su tipo es página.
Binod Kalathil
Esta es una opción:
Ejecute PHP desde HTML: http://php.about.com/od/advancedphp/p/html_php.htm
Luego, al comienzo de los archivos HTML:
<?php global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header; //to initialize WP environment
require('<path to wp-load.php>' . 'wp-load.php'); ?>
Luego puede usar las siguientes funciones de WP en los lugares apropiados en archivos HTML:
Para arriba: http://codex.wordpress.org/Function_Reference/get_header
Para menú: http://codex.wordpress.org/Function_Reference/wp_nav_menu
Para la parte inferior: http://codex.wordpress.org/Function_Reference/get_footer
Notas:
-
Los archivos HTML deben copiarse en el mismo dominio que WordPress.
-
No probado.
Muthu
Una de las opciones que tiene es exportar las páginas a un archivo csv y usar “Really Simple CSV Importer” para importar el contenido.
Es fácil de instalar y después de la instalación estará disponible en Admin -> Herramientas -> Importar. También le dará un archivo csv de muestra y se verá como
"post_id","post_name","post_author","post_date","post_type","post_status","post_title","post_content","post_category","post_tags","custom_field"
Tenía un sitio web de 300 páginas que se creó en dotnetnuke 5 hace 3 o 4 años y me costó mucho moverlo a WordPress. Entonces, lo que hice fue escribir un programa C# que extrajo todo el contenido de dotnetnuke de la base de datos y emitió un archivo csv. Los agrupé en unos 50 cada uno, creo.
El único trabajo adicional que debemos hacer es generar el archivo csv. También es posible que deba probar esto primero en una instalación de prueba y luego, finalmente, asegurarse de que está satisfecho con los resultados, es posible que deba ejecutar esto en producción.
En mi caso, también tuve que editar el HTML y las categorías porque no las había configurado correctamente antes. Pero si eres un poco cuidadoso y planificas tu tarea, puedes ahorrarte mucho trabajo.
Mira esto wordpress.org/plugins/import-html-páginas
– Anand Shah
8 de enero de 2014 a las 6:53
Solo para que quede claro… Entonces solo necesita el “menú” de wordpress y todo lo demás de HTML. ¿no?
– Binod Kalathil
8 de enero de 2014 a las 8:11
@Binod: Básicamente, sí, me gustaría la parte superior, la inferior, etc.
– Marc Polizzi
8 de enero de 2014 a las 8:15
@Arnand: Verificaré ese complemento – gracias
– Marc Polizzi
8 de enero de 2014 a las 8:16
Quizás un
<iframe>
? Cree una página de WordPress e inserte el<iframe>
. Sin embargo, hay dos problemas con esta solución: necesita un truco de JavaScript para evitar las barras de desplazamiento dobles; y en segundo lugar, solo puede vincular a la página de inicio de las páginas generadas si no utiliza trucos inteligentes de reescritura de URL para “reenviar” la URL a la página generada en el<iframe>
. Si no está seguro, pruébelo primero; es fácil. Sin embargo, los trucos son un poco complicados.– finalmente
11 de enero de 2014 a las 23:05