Quiero crear una página personalizada para mi blog de WordPress que ejecute mi código PHP en él, sin dejar de ser parte del diseño / tema / CSS general del sitio.
El código PHP hará uso de API de terceros (así que necesito incluir otros archivos PHP).
¿Cómo logro esto?
NB: no tengo una necesidad específica de interactuar con la API de WordPress; además de incluir ciertas otras bibliotecas PHP, no necesito otras dependencias en el código PHP que quiero incluir en una página de WordPress. Entonces, obviamente, cualquier solución que no requiera aprender la API de WordPress sería la mejor.
Respuestas:
No necesita interactuar con la API o usar un complemento.
Primero, duplica
post.php
opage.php
en la carpeta de tu tema (debajo/wp-content/themes/themename/
).Cambie el nombre del nuevo archivo como
templatename.php
(donde templatename es lo que desea llamar su nueva plantilla). Para agregar su nueva plantilla a la lista de plantillas disponibles, ingrese lo siguiente en la parte superior del nuevo archivo:Puede modificar este archivo (usando PHP) para incluir otros archivos o lo que necesite.
Luego cree una nueva página en su blog de WordPress, y en la pantalla de edición de página verá un menú desplegable de Plantilla en el widget Atributos a la derecha. Seleccione su nueva plantilla y publique la página.
Su nueva página usará el código PHP definido en
templatename.php
Fuente: Creación de plantillas de página personalizadas para uso global
fuente
Si desea crear su propio archivo .php e interactuar con WordPress sin encabezados 404 y mantener su estructura de enlace permanente actual, no es necesario un archivo de plantilla para esa página.
Descubrí que este enfoque funciona mejor, en su archivo .php:
Luego, simplemente puede realizar cualquier función de WordPress después de esto. Además, esto supone que su archivo .php está dentro de la raíz de su sitio de WordPress donde
wp-config.php
se encuentra su archivo.Esto, para mí, es un descubrimiento invaluable ya que lo estaba usando
require_once(dirname(__FILE__) . '/wp-blog-header.php');
durante mucho tiempo, ya que WordPress incluso te dice que este es el enfoque que debes usar para integrar las funciones de WordPress, excepto que causa encabezados 404, lo cual es extraño que deseen que utilices este enfoque. Integrando WordPress con su sitio webSé que muchas personas han respondido esta pregunta, y ya tiene una respuesta aceptada, pero aquí hay un buen enfoque para un archivo .php dentro de la raíz de su sitio de WordPress (o técnicamente en cualquier lugar que desee en su sitio), que puede navegar ¡y cargar sin encabezados 404!
Actualización: hay una manera de usar
wp-blog-header.php
sin encabezados 404, pero esto requiere que agregue los encabezados manualmente. Algo como esto funcionará en la raíz de su instalación de WordPress:Solo para actualizarlos a todos sobre esto, se necesita un poco menos de código para este enfoque, pero depende de usted cuál use.
fuente
wp-activate.php
tiene que deshabilitar el encabezado 404 mediante la configuración$wp_query->is_404 = false
al activar nuevos sitios múltiples utilizandorequire( dirname( __FILE__ ) . '/wp-blog-header.php' );
en la parte superior de esta página.wp-blog-header.php
enfoque como se define en codex.wordpress.org/Integrating_WordPress_with_Your_Website que ver el encabezado 404 en las herramientas del inspector de su navegador.Si eres como yo, a veces quieres poder hacer referencia a las funciones de WordPress en una página que no existe en el CMS. De esta manera, sigue siendo específico del backend y el cliente no puede eliminarlo accidentalmente.
Esto es realmente simple de hacer simplemente al incluir el
wp-blog-header.php
archivo usando un PHPrequire()
.Aquí hay un ejemplo que usa una cadena de consulta para generar Facebook Open Graph (OG) para cualquier publicación.
Tome el ejemplo de un enlace como
http://example.com/yourfilename.php?1
donde1
está la ID de una publicación para la que queremos generar datos OG:Ahora en el contenido de los
yourfilename.php
cuales, para nuestra conveniencia, se encuentra en el directorio raíz de WordPress:Ahí lo tienes: ¡modelos compartidos generados para cualquier publicación usando la imagen, extracto y título reales de la publicación!
Podríamos haber creado una plantilla especial y editar la estructura de enlaces permanentes para hacer esto, pero dado que solo es necesaria para una página y porque no queremos que el cliente la elimine desde el CMS, esta parecía la opción más limpia.
EDITAR 2017: tenga en cuenta que este enfoque ahora está en desuso
Para instalaciones de WordPress de 2016+, consulte ¿Cómo puedo agregar una página PHP a WordPress? para incluir parámetros adicionales antes de enviar los datos de su página al navegador.
fuente
Crear la página de la plantilla es la respuesta correcta. Para esto, solo agregue esto a la página que creó dentro de la carpeta de temas:
Para ejecutar este código, debe seleccionar "mytemplate" como plantilla de la página desde el back-end.
Consulte este enlace para obtener los detalles correctos https://developer.wordpress.org/themes/template-files-section/page-template-files/ .
fuente
Cualquier respuesta no cubrió si necesita agregar una página PHP fuera del tema de WordPress. Esta es la forma.
Debe incluir wp-load.php.
Luego puede usar cualquier función de WordPress en esa página.
fuente
require_once('wp-load.php');
Cree una página, llámela my-page.php y guárdela en su directorio de temas. Ahora, edite este archivo php y escriba la siguiente línea en la parte superior de la página
Escriba su código PHP debajo de la línea de definición de página personalizada, puede llamar a su otra plantilla WP, funciones dentro de este archivo.
Comience como
<?php require_once("header.php");?>
Ode cualquier manera que esté integrando su encabezado y pie de página para mantener el diseño consistente.
Como esta es mi página, NECESITA CREAR UNA PÁGINA desde el panel de administración de WordPress. Vaya a Admin => Páginas => Agregar nuevo
Agregue un título de página, dependiendo de cómo haya codificado la página personalizada, también puede agregar el cuerpo de la página (descripción). Puede omitir por completo la descripción si está escrita en la página personalizada de php.
En el lado derecho, seleccione Plantilla. Elija Mi página personalizada en el menú desplegable. ¡Estas listo! Vaya a la babosa (enlace permanente) creada por [wordpress] [1] y vea la página.
fuente
La mejor manera de agregar páginas PHP en WordPress a
Page Template
lachild-theme
carpeta.Cómo crear
Page Template
en WordPress.Cree un archivo con nombre
template-custom.php
y póngalo/wp-content/theme/my-theme/
.Para más detalles
fuente
Querrás echar un vistazo a la API de complementos de WordPress.
Esto explica cómo "enganchar" y "filtrar" en diferentes partes de la mecánica de WordPress, para que pueda ejecutar código PHP personalizado prácticamente en cualquier lugar en cualquier momento dado. Esta creación de código de enganche, filtrado y personalizado puede tener lugar en su archivo functions.php en cualquiera de sus temas. Feliz codificación :)
fuente
Si no quieres lidiar con la API de WordPress, entonces la respuesta de Adam es realmente la mejor.
Si estuviera dispuesto a lidiar con la API, le sugiero que se conecte al enlace de "redirección de plantilla", lo que le permitiría apuntar una URL o página en particular a un archivo PHP arbitrario sin dejar de tener acceso a WordPress.
fuente
¡La respuesta ampliamente aceptada de Adam Hopkinson no es un método totalmente automatizado para crear una página! Requiere que un usuario cree manualmente una página en el back-end de WordPress (en el tablero wp-admin). El problema con eso es que un buen complemento debe tener una configuración totalmente automatizada. No debería requerir que los clientes creen páginas manualmente.
Además, algunas de las otras respuestas ampliamente aceptadas aquí implican crear una página estática fuera de WordPress, que luego incluye solo algunas de las funciones de WordPress para lograr el encabezado y el pie de página temáticos. Si bien ese método puede funcionar en algunos casos, esto puede dificultar la integración de estas páginas con WordPress sin tener todas sus funciones incluidas.
Creo que el mejor enfoque, totalmente automatizado, sería crear una página usando
wp_insert_post
y hacer que resida en la base de datos. Aquí puede encontrar un ejemplo y una gran discusión al respecto, y cómo evitar que un usuario elimine accidentalmente la página: wordpress-automatic-created-pageFrancamente, me sorprende que este enfoque no haya sido mencionado como respuesta a esta pregunta popular (ha sido publicado durante 7 años).
fuente
Prueba esto:
fuente
Además de crear un archivo de plantilla personalizado y asignar esa plantilla a una página (como en el ejemplo de la respuesta aceptada), también existe una forma con la convención de nomenclatura de plantillas que WordPress usa para cargar plantillas (jerarquía de plantillas).
Cree una nueva página y use el slug de esa página para el nombre de archivo de la plantilla (cree un archivo de plantilla llamado page- {slug} .php ). WordPress cargará automáticamente la plantilla que se ajuste a esta regla.
fuente
Simplemente cree un
page-mytitle.php
archivo en la carpeta del tema actual y desde el Panel de control una página "mytitle" .Luego, cuando invoques la página por la URL, verás page-mytitle.php. Debe agregar HTML, CSS, JavaScript, wp-loop, etc. a este archivo PHP (
page-mytitle.php
).fuente
fuente
fuente
Puede nombrar su archivo "newpage.php" - póngalo en su directorio de temas en
wp-content
. Puede convertirlo en una plantilla de página (consulte http://codex.wordpress.org/Pages .. ) o puede incluirlo en uno de los archivos PHP de su tema, como header.php o single.php.Aún mejor, cree un tema secundario y póngalo allí, de modo que deje solo el código de su tema y sea más fácil de actualizar.
http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates
fuente
También puede usar directamente la página PHP, como crear la página PHP y ejecutarla con la ruta completa.
Como, http: //localhost/path/filename.php
fuente