Recuperar as imagens carregadas em uma Mensagem

Ao escrever um post no WordPress, você pode fazer upload de imagens para a mesma hora de escrever o artigo. Estas imagens, que fazem parte da biblioteca de mídia, estão associados a esse cargo específico. A peculiaridade deste comportamento reside na capacidade de extrair essas imagens, não importa se eles estivessem fisicamente colocado dentro do post. Este procedimento, portanto, é muito mais interessante do que o uso de campos personallizzati (campos personalizados) ou "difíceis" (para alguns) regexp (expressões regulares) dentro do corpo do post. Mais recentemente, WordPress permite inserir uma galeria simples, mas imediata, aproveitando essa conexão entre o seu post e imagem enviada. Baixo nível de imagens carregadas 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 um posto particular - carregados com imagens - usamos o seguinte código:

1
2
3
4
5
6
/ / Onde $ 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 ) ; $ Para = & get_children ('post_type = attachment = & post_mime_type imagem & post_parent =' $ post_id.);
$ai as $image ) { foreach ($ a como $ image) {
. $image -> post_title . '</p>' ; . <p> 'echo $ imagem -> post_title' </ p> '.;
}

Ficamos com 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>' ; . <p> 'echo $ imagem -> post_title "/> </ p>'. '<img src="'. $image -> guid.";

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

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

Ordem

Nos exemplos que vimos sobre as imagens são recuperadas sem qualquer ordem específica para uma ordem inversa máxima de carga. Se você já tentou usar a galeria do WordPress, você vai notar que este permite que você classifique as imagens carregadas, a triagem pode ser feita por título, data e hora ou um modo aleatório. Além disso, você pode usar o modo manual, para que escolha uma ordem das imagens, sempre com respeito ao conceito de túnel, então a seqüência (o primeiro, segundo, terceiro e assim por diante ...). Você também pode indicar como aumentando ou diminuindo o critério que escolhemos. Em particular, a triagem manual, funciona como nas páginas, ou seja, usando o campo menu_order (inicialmente definido como 0 para todas as imagens carregadas).
Então, se você enviou uma série de imagens e manipulados-los em um post com a triagem manual, de modo que fazemos em nosso ciclo é levado em conta a ordem. per qualsiasi tipo di campo ( menu_order , ID , data , etc…): Um rápido, fácil e, para fazer isso é usar o usort() para arrumar a nossa 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
/ / Onde $ 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 ) ; $ Para = & get_children ('post_type = attachment = & post_mime_type imagem & post_parent =' $ post_id.);

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

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

$a , $b ) { sortImage função ($ 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 ; retorno ($ a -> menu_order> $ b -> menu_order) 1: - 1;?
/ / Retorna ($ a-> menu_order> $ b-> menu_order)? -1: 1 / / descendente
}

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

11 comentários para "Recuperar imagens carregadas em um Post"

  1. 05 de setembro de 2009 O melhor da semana # 28 | BigThink :

    [...] Recuperar imagens carregadas em um recuparare Mensagem Um script para imagens de um post, mesmo que eles não eram realmente inseridas no texto! [...]

  2. 06 de janeiro de 2010 James:

    Olá e obrigado pelo seu artigo. Mas "eu não entendi o que é 'Eu quero o código para entrar para recuperar apenas uma previsão da primeira imagem inserida no post ...

  3. 07 de janeiro de 2010 Giovambattista Fazioli :

    @ Tiago: comente a linha como os dez últimos doze, eliminando assim o foreach . Em vez de linha 10, por isso antes echo ... digitar:

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

    Espero que eu entendi a sua pergunta ...

  4. 07 de janeiro de 2010 James:

    @ Giovambattista Fazioli:
    Giovambattista Olá e muito obrigado por sua resposta. Eu inseri o código como você mudou e não parece ser um problema dependendo 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

    Por quê? use WP 2.9.1

  5. 07 de janeiro de 2010 Giovambattista Fazioli :

    @ James: Parece que o tipo de função sortImage() não está escrito corretamente. Se Postami todo o código que você escreveu, ainda no e-mail.

  6. 07 de janeiro de 2010 James:

    @ Giovambattista Fazioli:

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

    Muito obrigado

  7. 11 de novembro de 2010 George:

    Olá,
    Gostaria de pedir-lhe informações sobre o script, com a introdução do wp 3.0, eles adicionaram a capacidade de colocar os polegares, eu precisaria alterar o script de modo a não aparecer na lista de imagens, aquele que é usado como os polegares do post.

    Você sabe se você me dar uma mão?
    Agradeço antecipadamente,
    George

  8. 12 de novembro, 2010 Giovambattista Fazioli :

    @ George: você poderia fazê-lo dessa maneira. Antes de remover as imagens relacionadas a um poste, extrair qualquer miniatura (como indicado no WordPress 9.2 +: miniaturas pós novo recurso ). Dentro do ciclo de extração, então, se a imagem está associada a essa miniatura para excluir. Se bem entendi ...

  9. 12 novembro de 2010 George:

    Perfeito, obrigado! Pelo jeito que eu pensei sobre uma solução para este tipo de pensamento ou, alternativamente, inserir o polegar como a primeira imagem na galeria e, em seguida, através de um artifício para excluir:

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

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

    Obrigado pela resposta,
    George

  10. 12 de novembro, 2010 Giovambattista Fazioli :

    @ George: isso é bom também posicioná-lo como antes, basta lembrar :)

  11. 12 novembro de 2010 George:

    Olá,
    desculpe se eu continuar a importunar, mas recebo erros e não entendo por que ...

    Minha função é a seguinte:

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

    Como posso fazê-lo tomar uma verificação para ver se há uma mensagem de miniaturas e então excluí-lo? No meu modelo eu tiver habilitado o suporte esta função e tudo funciona perfeitamente, e não apenas como eu o entendia controlar com precisão qual é o elemento do polegar, como resultado do pós e depois excluí-lo da saída ...

    Se você puder me ajudar a evitar o corte minhas veias ... Eu estou perdendo a paciência por trás desta coisa e eu não consigo entender ... : (

    muito obrigado,
    George

Deixe um comentário

XHTML PERMIT TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CÓDIGO DE INSERÇÃO:
 <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 


Parar SOPA