Recuperar imagens carregadas em um Post

Quando escrevemos um post no WordPress você pode enviar as imagens ao mesmo tempo que este artigo foi escrito. Estas imagens, que fazem parte dos meios de comunicação da biblioteca, estão associados com esse post particular. A peculiaridade deste comportamento encontra-se na capacidade de extrair essas imagens, independentemente se eles foram fisicamente inserido dentro do post. Este procedimento, portanto, é muito mais interessante do que o uso dos campos personallizzati (campos personalizados) ou "incompreensível" (para alguns) regexp (expressões regulares) dentro do corpo do Post. Recentemente, além disso, o WordPress permite que você insira um simples, mas imediato, galeria, usando a sua própria ligação entre esta imagem carregado e pós. Imagens de baixo nível enviados são tratados exatamente como um post, ou seja, a tabela de banco de dados e os campos são exatamente os mesmos.
Por exemplo, se para um determinado cargo - com as imagens carregadas - use o seguinte código:

1
2
3
4
5
6
/ / Se for $ post_id é o id do post
/ / Se estamos em um loop podemos usar $ post-ID
get_children ( 'post_type=attachment&post_mime_type=image&post_parent=' . $post_id ) ; $ To = & get_children ('post_type = attachment & post_mime_type = image & post_parent =' $ post_id.);
$ai as $image ) { foreach ($ a quanto $ imagem) {
. $image -> post_title . '</p>' ; . echo 'Into' $ imagem -> post_title '</ p>'.;
}

Recebemos a lista de títulos de imagens carregadas. Para ver as imagens basta modificar a saída:

1
. $image -> post_title . '<img src="' . $image -> guid . '" /></p>' ; . echo 'Into' $ imagem -> post_title '<img src="'. $image -> orientação. "/> </ p>'.;

No entanto, é mais correto - por razões de compatibilidade com atualizações futuras - usar os recursos que o WordPress oferece para recuperar a url da imagem. Por exemplo, podemos ver tanto a imagem em dimesioni real, a imagem em miniatura em:

1
2
3
. $image -> post_title . . echo 'Into' $ imagem -> 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>';

Classificando

Nos exemplos que vimos sobre as imagens são recuperados sem qualquer ordem específica para uma ordem reversa máxima de carregamento. Se você já tentou usar a galeria do WordPress, você vai perceber que o que lhe permite classificar as imagens carregadas, a espécie pode ser feito através do título, data e hora, ou um modo aleatório. Além disso, é possível utilizar o modo manual, então seleccionar uma ordem das imagens, sempre comparado com o conceito da galeria, então a sequência (o primeiro, o segundo, o terceiro, e assim por diante ...). Você também pode especificar como aumentar ou diminuir o critério que escolhemos. Em particular, a triagem manual, como ele funciona para as páginas, ou seja, explorando o campo menu_order (inicialmente definido como 0 para todas as imagens carregadas).
Se tiver colocado uma série de imagens em um post e manipulado estes com a triagem manual, devemos ter certeza de que o nosso ciclo é levado em conta também o fim. per qualsiasi tipo di campo ( menu_order , ID , data , etc…): Um rápido e extremamente simples de o fazer é utilizar a usort() para ordenar a array para qualquer tipo de campo ( menu_order , ID , data , etc, ...):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/ / Se for $ post_id é o id do post
/ / Se estamos em um loop podemos usar $ post-ID
get_children ( 'post_type=attachment&post_mime_type=image&post_parent=' . $post_id ) ; $ To = & get_children ('post_type = attachment & post_mime_type = image & post_parent =' $ post_id.);

/ / Aplicar a função de classificação para a minha
/ / Você pode escolher o seu quarto campo no qual executar
/ / A classificação (no nosso caso menu_order)
$ai , "sortImage" ) ; usort ($ ai ", sortImage");

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

$a , $b ) { função sortImage ($ a, $ b) {
$a -> menu_order == $b -> menu_order ) return 0 ; if ($ a -> menu_order == $ b -> menu_order) return 0;
$a -> menu_order > $b -> menu_order ) ? 1 : - 1 ; return ($ a -> menu_order> $ b -> menu_order) 1: - 1;?
/ / Return ($ a-> menu_order> $ b-> menu_order)? -1: 1, / / descendente
}

Escusado será dizer que, é claro, se você quiser recuperar o "antes" e uma imagem carregada basta apagar o foreach() .

11 comentários para: ""

  1. 05 de setembro de 2009 Melhor da Semana # 28 | BigThink :

    [...] Recuperando as imagens carregadas em um Post Um script necessário para restaurar as imagens de um post, mesmo que estes não foram realmente inseridas no texto! [...]

  2. 06 de janeiro de 2010 James:

    Olá e muito obrigado para o seu artigo. Pero ', e eu não entendo o que o código para inserir deseja recuperar apenas uma prévia da primeira imagem inserida no post ...

  3. 07 de janeiro de 2010 Giovan Battista Fazioli :

    @ Tiago: comente a linha 10:12 último exemplo, eliminando o foreach . Em vez de linha 10, por isso antes de echo ... digite:

    1
    $ai [ 0 ] ; // prendo la prima immagine solamente $ Imagem = $ a [0]; / / obtém a primeira imagem só

    Espero ter entendido sua pergunta ...

  4. 07 de janeiro de 2010 James:

    @ Giovan Battista Fazioli:
    Giovambattista Olá e muito obrigado pela sua resposta. Entrei no código como você mudou e não parece ser um problema na função usort e também a imagem não é exibida ...
    Warning: usort() [function.usort]: Invalid comparison function. in /membri2/xxxxx/wp-content/themes/nomtema/index.php on line 27

    Como assim? usar WP 2.9.1

  5. 07 de janeiro de 2010 Giovan Battista Fazioli :

    @ Tiago: parece que a função do tipo sortImage() não está escrita corretamente. No caso de colocar-me todo o código que você escreveu, ainda no e-mail.

  6. 07 de janeiro de 2010 James:

    @ Giovan Battista Fazioli:

    Eu chamo o código php que eu inseri via e-mail

    Muito obrigado

  7. 11 de novembro de 2010 Giorgio:

    Olá,
    Eu gostaria de pedir-lhe informações sobre o roteiro, com a introdução de wp 3.0, eles adicionaram a capacidade de inserir os polegares, eu precisaria modificar o script de tal forma que não aparecem na lista de imagem, o que é usado como os polegares do post.

    Sabe, por acaso, me dar uma mão?
    muito obrigado antecipadamente
    Giorgio

  8. 12 novembro de 2010 Giovan Battista Fazioli :

    @ George: você poderia fazê-lo desta forma. Antes de retirar as imagens relacionadas a um post, extrair qualquer miniatura (como indicado no WordPress 2.9 +: a nova função de pós thumbnails ). Dentro do ciclo de extracção, em seguida, se a imagem associada corresponde àquela da miniatura excluir. Se bem entendi ...

  9. Novembro 12, 2010 Giorgio:

    Perfeito, obrigado! Entre outras coisas, que uma solução deste tipo, ou em alternativa, pensado para inserir o polegar enquanto a primeira imagem na galeria, e, em seguida, para excluir através de um artifício:

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

    poderia ser uma solução igualmente eficaz na sua opinião?

    Muito obrigado pela sua resposta,
    Giorgio

  10. 12 novembro de 2010 Giovan Battista Fazioli :

    @ George: Isso é ótimo também posicioná-lo como o primeiro, basta lembrar :)

  11. Novembro 12, 2010 Giorgio:

    Olá,
    Me desculpe se eu continuar a incomodar, mas eu recebo erros e não consegue entender o porquê ...

    minha função é o seguinte:

    1
    2
    3
    4
    get_children ( 'post_type=attachment&post_mime_type=image&post_parent=' . $post -> ID ) ; $ To = & get_children ('post_type = attachment & post_mime_type = image & post_parent =' $ Post -> ID.);
    $ai as $image ) { foreach ($ a quanto $ imagem) {
    . $image -> post_title . '</p>' ; . echo 'Into' $ imagem -> post_title '</ p>'.;
    }

    Como posso deixá-lo fazer a verificação para ver se há uma thumbail poste e, em seguida, excluí-lo? No meu modelo eu tenha habilitado o suporte essa função e tudo funciona perfeitamente, eu só não descobri como fazê-lo controlar com precisão qual elemento é o polegar do cargo e, em seguida, de acordo com excluir da saída ...

    Se você puder me ajudar eu evitaria a cortar os pulsos ... Estou perdendo a paciência por trás dessa coisa e eu não consigo entender ... : (

    muito obrigado,
    Giorgio

Deixe um comentário

TAG XHTML permita: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de entrada:
 <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