JQuery - json error si no hay imagen

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 5 puestos en JQuery (en relación al último mes)
Gráfica de JQuery

json error si no hay imagen

Publicado por maxlinux2000 (3 intervenciones) el 27/05/2018 16:11:42
Hola a todos,

tengo un pequeño problema con los null en jquery que me gustaría resolver.

He escrito un cliente para wordpress que baja las noticias usando las REST API y funciona decentemente.
El problema sale cuando no encuentra una foto porqué quien ha escrito el articulo en WP, no la ha puesto o ha puesto una demasiado pequeña.

la parte relevante del javascript es esta:

1
2
3
4
5
6
7
8
9
function getNews() {
    var url = 'https://example.org/blog/wp-json/wp/v2/posts?per_page=12';
    $.getJSON(url, function(data) {
        var i = 0,
            dataSize = data.length,
            html = '';
        for (i; i < dataSize; i++) {
            var thumb = JSON.stringify(data[i].better_featured_image.media_details.sizes.thumbnail.source_url, null, 4);
            var fullImage = data[i].better_featured_image.media_details.file;

el error en la consola sale siempre cuando no encuentra datos en la variable fullImage.

1
Uncaught TypeError: Cannot read property 'media_details' of null


Como hago para controlar el Null? He probado a poner una condición tipo

1
if (fullImage == null) { código }


pero el problema sale igualmente porqué en el momento que se detecta el NULL, el script se bloquea.


saludos
MaX
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 385
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

json error si no hay imagen

Publicado por xve (673 intervenciones) el 27/05/2018 21:51:31
Hola Max, prueba esto:
1
2
3
4
if(data[i].better_featured_image.media_details.file.length)
{
    var fullImage = data[i].better_featured_image.media_details.file;
}

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 5 puestos en JQuery (en relación al último mes)
Gráfica de JQuery

json error si no hay imagen

Publicado por maxlinux2000 (3 intervenciones) el 28/05/2018 09:35:59
tienes razón... no había pensado de mirar el length de la variable.

ya lo he implementado y aparentemente funciona bien.
En los próximos días montará un wordpress de prueba para replicar el error a mi antojo, pero no dudo que pasará todas las pruebas

gracias
MaX
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 5 puestos en JQuery (en relación al último mes)
Gráfica de JQuery

json error si no hay imagen

Publicado por maxlinux2000 (3 intervenciones) el 28/05/2018 15:40:21
Perfecto!! funciona también con otros WP

por la posteridad y en el caso alguien tenga problemas con las imágenes en WP, os aconsejo instalar estos plugin en WP

1. Better REST API Featured Images
2. Quick Featured Images
3. Regenerate Thumbnails

con estos tres plugin es practicante imposible que una entrada no tenga una imagen destacada, porqué Quick Featured Images si no hay ninguna puede asignar una por defecto segun varios parámetros a eleccion del administrador.

el Regenerate Thumbnails sirve para regenerar todas las medidas de las imágenes, y Better REST API Featured Images sirve para mostrar en el primer nivel del json de WP, todas las url de las varias versiones de las imágenes. Así el javascript (o cualquier otro lenguaje) es mucho más simple de escribir

saludos y gracias!

MaX
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar