Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

401
Vistas
Acceda a un archivo JSON local en el tema de Wordpress

Fondo Estoy creando dinámicamente un archivo JSON de datos cuando un usuario guarda una página en el backend de Wordpress. Hago esto a través del gancho 'save_post' y guardo el archivo 'network.json' usando file_put_contents en la raíz de mi carpeta de temas. Estoy haciendo esto para poder acceder a datos específicos de un script js en mi tema.

Enfoque actual Tengo un archivo js en cola en mi tema con el siguiente JS dentro. Lo siguiente funciona, pero me pregunto si es el mejor enfoque para llamar a un archivo JSON local dentro de un tema de WP.

 $.getJSON( "../wp-content/themes/ihdf/network.json", function(data) { console.log(data); });

¿Es lo anterior la forma adecuada y técnicamente más sólida de hacerlo?

Otros enfoques

Anteriormente usé ajax en Wordpress poniendo en cola un script y configurando la función ajax adecuada para llamar con admin-ajax.php. Eso parece demasiado complicado para mis necesidades.

También podría establecer una variable js dentro de mi archivo de plantilla como la siguiente:

 var networkJSON = <?php get_template_directory_uri() . '/network.json' ?>
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cuando se trata de trabajar con solicitudes remotas en el lado del servidor, la función file_get_contents() parece ser una opción confiable, pero WordPress ya incluye una API excepcionalmente útil llamada HTTP API .

La API HTTP se puede usar para enviar y recuperar datos de API remotas, y eso también significa cualquier solicitud a su propio servidor.

Hay cuatro funciones principales que comprenden la API HTTP en WordPress:

  • wp_remote_get() : para recuperar datos de un punto final
  • wp_remote_post() – Para enviar datos a un punto final
  • wp_remote_head() – Para enviar una solicitud HEAD
  • wp_remote_retrieve_body() : para recuperar el contenido del cuerpo principal de la respuesta del servidor

Por ejemplo, podría usar wp_remote_get() para recuperar datos del archivo network.json y luego analizarlos junto con la función wp_localize_script() , exponiendo los datos que necesita en su archivo js en cola.

Tome como referencia la siguiente función (no probada), pero no debería tener ningún problema con ella.

-- La función --

 function wp_request_localize_my_json_data() { // Helpers to define the $url path //$protocol = is_ssl() ? 'https' : 'http'; $directory = trailingslashit( get_template_directory_uri() ); // Define the URL $url = $directory . 'network.json'; // Register main js file to be enqueued wp_register_script( 'network-js', $directory . 'assets/js/network.js', array('jquery'), false, true ); // Make the request $request = wp_remote_get( $url ); // If the remote request fails, wp_remote_get() will return a WP_Error, so let's check if the $request variable is an error: if( is_wp_error( $request ) ) { return false; // Bail early } // Retrieve the data $body = wp_remote_retrieve_body( $request ); $data = json_decode( $body ); // Localize script exposing $data contents wp_localize_script( 'network-js', 'networkJSON', array( 'network_url' => admin_url( 'admin-ajax.php' ), 'full_data' => $data ) ); // Enqueues main js file wp_enqueue_script( 'network-js' ); } add_action( 'wp_enqueue_scripts', 'wp_request_localize_my_json_data', 10);

Si todo va bien, probablemente terminará con los datos localizados recuperados del archivo network.json a su disposición.

Ahora supongamos que tiene una variable llamada current_user en el archivo network.json . Entonces, para acceder a esta variable dentro de su archivo JS en cola, simplemente haría lo siguiente:

 <script type="text/javascript"> var my_data = networkJSON.full_data; var user = my_data.current_user; </script>
about 4 years ago · Santiago Trujillo Denunciar

0

si desea leer el archivo json en wordpress a través de un complemento o tema, use esta función.

 function get_local_file_contents( $file_path ) { ob_start(); include $file_path; $contents = ob_get_clean(); return $contents; }

esta noche quiero leer un archivo json en la carpeta json al lado de mi archivo php en el complemento y encontrar este artículo

no puedo hacerlo con file_get_contents()

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda