Soporte » WordPress Avanzado » Ejecutar funciones WP desde fichero php

  • Hola a todos,

    Tengo una página desde la que ejecuto una llamada a un fichero .php con Ajax. Dentro de este PHP accedo a la BBDD con mysqli y devuelvo el resultado en formato html.

    La duda que tengo es como llamar a funciones propias de WP, por ejemplo get_post_thumbnail_id, desde este fichero php (que se encuentra dentro de la ruta de mi tema). Si únicamente pongo la función tal cual en el fichero php no la reconoce. He probado con include de wp-load.php dentro del fichero php pero tampoco me funciona.

    En resumen, mi duda es como llamar a cualquier función propia de WP desde un fichero php (que se encuentra dentro del tema).

    Gracias de antemano

    Un saludo

Viendo 6 respuestas - 1 de 6 (de 6 total)
  • Moderador almendron

    (@almendron)

    En el ejemplo que mencionas, es muy probable que no te funcione porque te faltará el ID del post: https://codex.wordpress.org/Function_Reference/get_post_thumbnail_id

    En general, todas las funciones que deban ejecutarse dentro del loop te darán un error salvo que obtengas antes el valor que necesite la función y después la pases.

    Hola,

    Gracias por la respuesta. Ya lo resolví.

    Muchas gracias

    Moderador almendron

    (@almendron)

    Sería conveniente que pusieras aquí cuál ha sido la solución. De esa forma, ayudas a otros que tengan el mismo problema.

    Hola,

    Sí, tienes razón, no me di cuenta.

    Al tratarse de un fichero PHP, sin referencia al bucle de WordPress, lo que hice fue conectarme directamente a la BBDD con MYSQLI:
    $mysqli=new mysqli('localhost','root', '','blog');
    $resultado = $mysqli->query("Select ....");
    while ($resul =$resultado->fetch_assoc()){.....}

    Las tablas utilizadas fueron wp_terms, wp_term_relationships, wp_posts. Así saqué los post que requería según el filtro que se necesite.

    Esta forma es más potente, accedo directamente a la BBDD, pero no aprovecho las funciones propias de wordpress (y es más posible un error).

    Una vez tenga el blog completo, probaré a realizarlo dentro del bucle con una plantilla (versión 2.0).

    Gracias igual

    Un saludo

    @kaintain

    Desde un php externo puedes cargar WordPress y tener acceso a la base de datos y funciones propias añadiendo el fichero wp-load.php al principio del PHP:

    <?php
    require( dirname( __FILE__ ) . ‘/wp-load.php’ );

    Perfecto, lo tengo en cuenta para la próxima actualización.

    Muchas gracias

Viendo 6 respuestas - 1 de 6 (de 6 total)
  • El debate ‘Ejecutar funciones WP desde fichero php’ está cerrado a nuevas respuestas.