pagina insertar functions codigo php wordpress include

php - functions - insertar codigo html en pagina wordpress



¿Cómo incluir las funciones de Wordpress en el archivo.php personalizado? (4)

¿Cómo puedo incluir funciones de Wordpress en un archivo .php personalizado?

En detalle: tengo un directorio bajo mi tema (Constructor) llamado informes. Estos contienen archivos .php que generan informes a partir de datos del sitio con DOMPDF para su descarga. Para estos, me gustaría usar las funciones que proporciona el motor de Wordpress, por ejemplo get_the_author_meta( ''user_firstname'', $user_id ) . Si los utilizo, obtengo (naturalmente) el siguiente error:

Error fatal: llamada a la función no definida get_the_author_meta () en ROOT / public_html / wp-content / themes / constructor / reports / testreport.php en la línea 15

Me hicieron creer que necesito incluir wp-blog-header.php. Yo uso require_once("../../../../wp-blog-header.php"); . Con esto obtengo el siguiente error 404:

No se encontró ninguna página web para la dirección web: ROOT / wp-content / themes / constructor / reports / testreport.php

(El requisito apunta a la ruta correcta. Si juego con él, aparece Warning: require_once (../../../ wp-blog-header.php): no se pudo abrir la secuencia ... Entonces la ruta debe ser correcto.)

¿Hay algo que pase por alto? ¿Por qué no puedo incluir este archivo wp? ¿Cuál es el método correcto para incluir las funciones de wp?

Gracias por la ayuda, Sziro


Bueno, si alguien tiene instaladas nuevas versiones de PHP (ver> = 5.5.x), entonces también puede probar el siguiente código en la secuencia de comandos raíz en el directorio del sitio web de WordPress mismo:

<?php define("WP_ROOT", __DIR__); define("DS", DIRECTORY_SEPARATOR); require_once WP_ROOT . DS . "wp-load.php";

O

<?php define("WP_ROOT", __DIR__); define("DS", DIRECTORY_SEPARATOR); require_once WP_ROOT . DS . "wp-blog-header.php";

Supongo que este es un enfoque más directo y más limpio, y no implica agregar barras de forma manual y cambiar los directores por ..

Espero que esto ayude a alguien.


Estás en el camino correcto. Pruebe esto en su lugar:

require_once("../../../../wp-load.php");


La forma más profesional sin los puntos si WordPress fuera la raíz del documento:

require($_SERVER[''DOCUMENT_ROOT''].''/wp-load.php'');


require_once(dirname(__FILE__) . ''/options.php'');

Esta es una mejor forma de incluir un archivo en wordpress