API JSON Data en WordPress

2

En la página API para desarrolladores de Google , habla brevemente sobre cómo recuperar una dinámica lista de fuentes utilizando JSON / JavaScript.

Me preguntaba cómo podría incluir la API de fuentes web en mi tema de Wordpress para no crear mi propia lista o tener que lanzar constantemente una actualización de fuentes.

Gracias.

    
pregunta user1752759 31.10.2012 - 02:53

1 respuesta

7

Aquí hay un primer código de borrador rápido para rellenar un menú desplegable desde la API de fuentes de Google, no conozco el marco de opciones, por lo que esto no se solucionará.

1. Obtenga una clave de acceso a la API de Google

Su solicitud necesitará una clave válida, puede seguir las instrucciones aquí para obtener una: enlace

Es gratis para un determinado pedido # por día y también obtienes estadísticas de uso interesantes con él.

2. Usemos la API HTTP de WordPress para obtener la respuesta de JSON

//enter your api key and the Google Font url 
$google_api_url = 
'https://www.googleapis.com/webfonts/v1/webfonts?key=AIzaSyD6j7CsUT89645jlhkdBjnN-5nuuFGU';


//lets fetch it
$response = wp_remote_retrieve_body( wp_remote_get($google_api_url, array('sslverify' => false )));

Observe 'sslverify' => false , esto se debe a que Google requiere SSL para autorizar la clave de API, puede eliminar esto y podría funcionar, pero si recibe un error de verificación de SSL (especialmente en localhost), puede intentar configurarlo en falso .

3. Recorre la respuesta

Ahora tenemos algo con lo que trabajar, así que revisemos los errores y recorramos los datos que devuelve Google.

if( is_wp_error( $response ) ) {
   echo 'Something went wrong!';
} else {

// Let's turn the JSON response into something easier to work with
// I guess this part is what really answers the above in terms of WP 
// working with json responses, if anyone knows any better way, do tell

$json_fonts = json_decode($response,  true);
// that's it

$items = $json_fonts['items'];
$i = 0;
foreach ($items as $item) {
$i++;
$str = $item['family']; //I guess we want the font family

Lo anterior simplemente devuelve la familia de fuentes, pero hay muchos más datos devueltos a través de Googsy , por ejemplo, la opción de peso de fuente y también un montón de fuentes. subconjuntos, lo he dejado fuera para mantener este ejemplo simple. También es probable que debas usar javascript en lugar de PHP, pero no nos ocupemos de eso (puedes poner wp-includes/js/json2.js ).

4. Salida

Ahora tenemos una lista de fuentes de las cuales se envían en un bucle a través de $str , puede agregarlas a un cuadro de entrada con algo como <option value="<?php echo $str; ?>"><?php echo $str; ?></option>; , sí, es un poco de ghetto pero se verá así:

Probablementequierasponeresainformacióndentrodeunodeloscamposdemarcosdeopcionesoalgoasí.

5.Ahoranecesitamosobtenerlafuentequeseleccionamos

YaqueestablecemoselvalordeentradaenelnombredelasfuentesqueesmásomenosloqueGoogsydesea,bueno,esaparteanteriordondeeliminélossubgruposdefuenteylospesoscausaráalgunosproblemas,porloquedeberáextenderesebucleparaincluirlosdatosquequieras!

AsíqueahorahacemosquelaseleccióndesplegablecapturelaentradaylaagreguealaURLdelaAPIdeGoogleCSS,queparecehttp://fonts.googleapis.com/css?family=..yourfontname+stuff....

Porejemplo: enlace

Hay muchas cosas que no revisé aquí, como almacenar los valores utilizando Transients_API porque Google actualiza la fuente recolecta a menudo y no necesitamos seguir golpeando para obtener la misma información.

También utilizo alguna función de compilación como wp_list_pluck para seleccionar sus fuentes de la lista.

ps. No terminé el código para la parte 5 porque tengo hambre, así que espero que esto te ponga en el camino correcto.

    
respondido por el Wyck 01.11.2012 - 23:54

Lea otras preguntas en las etiquetas