Recuperar las imágenes cargadas en un mensaje

Al escribir un post en WordPress se pueden subir imágenes a la misma hora de escribir el artículo. Estas imágenes, que forman parte de la biblioteca de medios, están asociados a ese puesto en particular. La peculiaridad de este comportamiento radica en la capacidad de extraer estas imágenes sin importar si fueron colocados físicamente en el interior del poste. Este procedimiento, por lo tanto, es mucho más interesante que el uso de campos personallizzati (campos personalizados) o "difícil" (para algunos) regexp (expresiones regulares) en el cuerpo del mensaje. Más recientemente, WordPress te permite insertar una galería simple, pero inmediata, tomando ventaja de esta conexión entre el mensaje y la imagen subida. Bajo nivel de las imágenes cargadas son tratados exactamente igual que un mensaje, es decir, la tabla de base de datos y los campos son exactamente los mismos.
Por ejemplo, si un determinado puesto - cargado de imágenes - se utiliza el siguiente código:

1
2
3
4
5
6
/ / Donde $ post_id es el id del mensaje
/ / Si estamos en un bucle que podemos usar $ post-ID
get_children ( 'post_type=attachment&post_mime_type=image&post_parent=' . $post_id ) ; $ A = & get_children ('post_type = apego y post_mime_type = imagen y post_parent =' $ Post_id.);
$ai as $image ) { foreach ($ a como $ imagen) {
. $image -> post_title . '</p>' ; . <p> 'echo $ imagen -> post_title' </ p> ".;
}

Se obtiene la lista de los títulos de las imágenes subidas. Para ver las imágenes basta con modificar la salida:

1
. $image -> post_title . '<img src="' . $image -> guid . '" /></p>' ; . <p> 'echo $ imagen -> post_title "/> </ p>'". <img src="'. $image -> orientación. ";

Sin embargo, es más correcto - por razones de compatibilidad con futuras actualizaciones - utilizar las características que ofrece WordPress para recuperar la url de la imagen. Por ejemplo, podemos ver en la imagen es real y bolsa de viaje grande a través de la imagen en miniatura:

1
2
3
. $image -> post_title . echo '<p>' $ imagen -. post_title>.
wp_get_attachment_thumb_url ( $image -> ID ) . '" />' . '<img Src="'. Wp_get_attachment_thumb_url ($image -> ID).' "/>".
wp_get_attachment_url ( $image -> ID ) . '" /></p>' ; '<img Src="'. Wp_get_attachment_url ($image -> ID).' "/> </ P> ';

Orden

En los ejemplos que hemos visto en las imágenes se recuperan sin ningún orden específico para un orden inverso al máximo de carga. Si alguna vez ha tratado de utilizar la galería de WordPress, te darás cuenta de que esto le permite ordenar las imágenes cargadas, la clasificación se puede hacer por título, fecha y hora o un modo aleatorio. Además, puede utilizar el modo manual, así que elegimos un orden de las imágenes, siempre en relación con el concepto de túnel, entonces la sucesión (la primera, segunda, tercera, etc ...). También puede indicar cómo aumentar o disminuir el criterio que hemos elegido. En particular, la clasificación manual, funciona como en las páginas, es decir, utilizando el campo menu_order (inicialmente se establece en 0 para todas las imágenes cargadas).
Así que si has subido una serie de imágenes y manipulado en un mensaje con la clasificación manual, por lo que hacemos en nuestro ciclo se tiene en cuenta el orden. per qualsiasi tipo di campo ( menu_order , ID , data , etc…): Un rápido, fácil y, para ello es utilizar el usort() para poner en orden nuestra array para cualquier tipo de terreno ( menu_order , ID , data , etc ...):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/ / Donde $ post_id es el id del mensaje
/ / Si estamos en un bucle que podemos usar $ post-ID
get_children ( 'post_type=attachment&post_mime_type=image&post_parent=' . $post_id ) ; $ A = & get_children ('post_type = apego y post_mime_type = imagen y post_parent =' $ Post_id.);

/ / Aplicar una función de clasificación por lo que mi
/ / Usted puede elegir el campo en el que se
/ / La clasificación (en nuestro caso menu_order)
$ai , "sortImage" ) ; usort ($ a, "sortImage");

$ai as $image ) { foreach ($ a como $ imagen) {
. $image -> post_title . '<img src="' . wp_get_attachment_thumb_url ( $image -> ID ) . '" /></p>' ; . <p> 'echo $ imagen -> post_title "/> </ p>'". <img src="'. wp_get_attachment_thumb_url ($image -> ID). ';
}

$a , $b ) { función sortImage ($ a, $ b) {
$a -> menu_order == $b -> menu_order ) return 0 ; if ($ a -> b == $ menu_order -> menu_order) return 0;
$a -> menu_order > $b -> menu_order ) ? 1 : - 1 ; return ($ a -> menu_order> $ b -> menu_order) 1: - 1;?
/ / Retorno ($ a-> menu_order> $ b-> menu_order)? -1: 1 / / descendente
}

Ni que decir tiene, por supuesto, si desea recuperar el "antes" y simplemente borra la única imagen cargada foreach() .

11 comentarios para "recuperar las imágenes cargadas en un mensaje"

  1. 05 de septiembre 2009 Lo mejor de la semana # 28 | BigThink :

    [...] Recuperar imágenes en una recuparare Publicar un guión a imágenes de un mensaje, incluso si no se inserta realmente en el texto! [...]

  2. 06 de enero 2010 James:

    Hola y gracias por tu artículo. Sin embargo, "yo no entendía lo que es:" Quiero el código para entrar a recuperar sólo una vista previa de la primera imagen insertada en el mensaje ...

  3. 07 de enero 2010 Giovambattista Fazioli :

    @ James: comentar la línea de los últimos 1012, eliminando así el foreach . En lugar de la fila 10, así que antes de echo ... escriba:

    1
    $ai [ 0 ] ; // prendo la prima immagine solamente Para la imagen $ = $ [0]; / / obtener la primera imagen sólo

    Espero que yo entendía su pregunta ...

  4. 07 de enero 2010 James:

    @ Giovambattista Fazioli:
    Giovambattista Hola y muchas gracias por tu respuesta. He insertado el código, ya que han cambiado y no parece ser un problema dependiendo de usort y también la imagen no se muestra ...
    Warning: usort() [function.usort]: Invalid comparison function. in /membri2/xxxxx/wp-content/themes/nomtema/index.php on line 27

    ¿Por qué? uso de WP 2.9.1

  5. 07 de enero 2010 Giovambattista Fazioli :

    @ James: Parece que la función de clasificación sortImage() no está escrita correctamente. Si postami todo el código que has escrito, incluso en el correo.

  6. 07 de enero 2010 James:

    @ Giovambattista Fazioli:

    Que yo llamo el código php que inserta a través de correo electrónico

    Muchas gracias

  7. 11 de noviembre 2010 George:

    Hola,
    Me gustaría pedirle información sobre el guión, con la introducción de WP 3.0, que añade la capacidad de poner los pulgares, que tendría que cambiar el guión para no aparecer en la lista de imágenes, que se utiliza como el pulgar de la entrada.

    ¿Sabe usted si me das una mano?
    gracias de antemano,
    George

  8. 12 de noviembre 2010 Giovambattista Fazioli :

    @ Jorge: puedes hacerlo de esa manera. Antes de retirar las imágenes relacionadas con un mensaje, extraer cualquier imagen en miniatura (como se indica en WordPress 9.2 +: miniaturas mensaje nuevo rasgo ). Dentro de la extracción de bucle, entonces, si la imagen se asocia con la imagen en miniatura para excluir. Si he entendido bien ...

  9. 12 de noviembre 2010 George:

    Perfecto, muchas gracias! Por mi manera de pensar acerca de una solución para este tipo de pensamiento o, alternativamente, insertar el dedo pulgar como la primera imagen de la galería y luego a través de un artificio para excluir:

    1
    $ai == $ai [ 0 ] ) { } else { echo ... } if ($ a == $ a [0]) {} else {...}

    una solución podría ser igualmente eficaz en su opinión?

    Gracias por la respuesta,
    George

  10. 12 de noviembre 2010 Giovambattista Fazioli :

    @ Jorge: eso está bien también su posicionamiento como antes, sólo recuerda :)

  11. 12 de noviembre 2010 George:

    Hola,
    lo siento si me siguen molestar, pero me da errores y no entienden por qué ...

    Mi función es la siguiente:

    1
    2
    3
    4
    get_children ( 'post_type=attachment&post_mime_type=image&post_parent=' . $post -> ID ) ; $ A = & get_children ('post_type = apego y post_mime_type = imagen y post_parent = "$ post -> ID.)
    $ai as $image ) { foreach ($ a como $ imagen) {
    . $image -> post_title . '</p>' ; . <p> 'echo $ imagen -> post_title' </ p> ".;
    }

    ¿Cómo puedo hacer que se tome un cheque para ver si hay un mensaje de miniatura y luego excluir a ella? En mi plantilla que ha habilitado el soporte esta función y todo funciona perfectamente, no sólo como yo lo entendía precisamente el control que es el elemento de el pulgar como consecuencia de la entrada y luego excluirlo de la salida ...

    Si usted me puede ayudar a evitar que se corte las venas ... estoy perdiendo la paciencia detrás de esta cosa y no lo puedo entender ... : (

    muchas gracias,
    George

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Dejar de SOPA