Legenda nas notícias da página inicial
-
Pessoal estou precisando colocar legenda nas notícias da página inicial.
Vejo isso em alguns sites feitos em wordpress.Coloquei uma imagem do G1 como exemplo:
http://img835.imageshack.us/i/legendanoticias.jpg/
Alguém já fez isso?
-
Achei a idéia interessante para temas neste formato.
Você pode conseguir este efeito usando campos personalizados.
Adicione um Campo Personalizado em seu post chamado legenda
Depois em seus posts onde vc deseja exibir a legenda coloque isso.
<?php if($legenda = get_post_meta($post->ID, 'legenda', $single = true)) { ?> <p class="post-legenda"><?php echo $legenda; ?></p> <?php } ?>
Coloquei a tag p mas pode ser qualquer outra e adicionei a class post-legenda que vc também pode mudar para o que vc quer ou remover se desejar.
Amigo era justamente isso!
Veja aí como ficou:
http://img152.imageshack.us/i/legendasite.jpg/Muito obrigado…
Ficou bem legal, gostei mesmo dessa idéia.
Espero criar um tema magazine e usar isso.
Olá, amigos do fórum WordPress!
Tá, aí eu entendi, mas e dentro dos posts? Como crio uma função para adicionar o nome do fotógrafo nas imagens internas?
Muito obrigado, meus amigos.duplocou
Amgnando da mesma forma demonstrada acima.
A forma que foi explicada acima vc pode colocar qualquer informação que queira. Com os dados da informação vc pode mostrá-la ou fazer verificações para o post se comportar de forma diferente de acordo com a informação que ele tenha.
Talvez vc não tenha entendido porque ficou meio corrida a resposta então lhe proponho um teste.
coloque o seguinte código dentro da div que mostra o conteúdo do seu post.
<?php if($fotografo = get_post_meta($post->ID, 'fotografo', $single = true)) { ?> <p class="post-legenda"> Foto tirada por: <?php echo $fotografo; ?> </p> <?php } ?>
Agora vá em um post e crie o campo personalizado com o nome fotografo e coloque qualquer nome no campo valor e salve o campo personalizado e visite sua página para ver se aparece lá o nome que vc colcou.
Olá, amigo! Obrigado pela resposta. Essa parte eu entendi, meu caro. O que eu queria era o seguinte: se eu criar um post com dez imagens, e a cada imagem adicionar junto dela o nome do fotógrafo. Não sei como, talvez alguma maneira de inserir dentro do caption da imagem, ou algo assim.
Algum shortcode, talvez, não sei. Mas, ainda assim, obrigado!Bom Amgnando até existe uma forma de fazer isso que seria criando campos personalizados nas imagens.
É um pouco complicado, mas nada muito difícil colocar novos campos nas imagens.
neste link tem várias formas de criar estes campos
http://www.freewebgallerys.com/2010/09/01/creating-custom-fields-for-attachments-in-wordpress/
Mas tem um problema, quando eu estava pesquisando sobre isso encontrei vários posts que são cópias de outros na verdade e nenhum deles parece saber exatamente como recuperar os dados inseridos nos novos campos.
Depois de muita tentativas e erro eu consegui recuperar um dos dados para meu exemplo e fiquei de estudar depois como recuperar todos, mas nunca mais voltei a olhar para isso.
Aqui está o código que eu desenvolvi para meu teste e que funcionou corretamente.
Inserindo novo campo:
Adicione no function do tema editando os nomes e campos necessário ========================================================= /* Cria o novo campo para mídia*/ function ot_image_attachment_fields_to_edit($form_fields, $post) { $form_fields["ot_meu_campo"] = array( "label" => 'Meu novo Campo', "input" => "text", // Se não for definido, o input será text "value" => get_post_meta($post->ID, "_ot_meu_campo", true), "helps" => 'Minha descriçâo', ); return $form_fields; } add_filter("attachment_fields_to_edit", "ot_image_attachment_fields_to_edit", null, 2); function ot_image_attachment_fields_to_save($post, $attachment) { if( isset($attachment['ot_meu_campo']) ){ update_post_meta($post['ID'], '_ot_meu_campo', $attachment['ot_meu_campo']); } return $post; } add_filter("attachment_fields_to_save", "ot_image_attachment_fields_to_save", null , 2);
Recuperando o campo recem adicionado
Coloque desntro de um loop ou query_post onde deseja que a infomação apareça ou pegue a informação e utilize para criar uma verificação para seu código. <?php $args = array( 'post_type' => 'attachment', 'numberposts' => -1, //Se definido como -1 mostra todas as mídias do post 'post_status' => null, 'post_parent' => $post->ID ); $attachments = get_posts($args); if ($attachments) { foreach ( $attachments as $attachment ) { $campo_extra = get_post_meta($attachment->ID, '_ot_meu_campo', true); echo " <ul> <li>$campo_extra</li> </ul>"; } } ?>
Provavelmente a forma de recuperar para os outros são identicas ou muito semelhantes, teste e veja se consegue inserir e recuperar os dados e não deixe de me avisar, por favor.
Deu certo, amigo do fórum. Funcionou certinho, no entanto, eu estou na batalha aqui para descobrir uma maneira de colocar aquela descrição dentro do caption da imagem. Mas, ainda assim, muito obrigado, quando precisar e eu puder ajudar. Abs
Bom neste caso acho que vc deveria fazer a personalização da galeria com este tutorial.
http://wpengineer.com/1802/a-solution-for-the-wordpress-gallery/
Conseguindo personalizar a galeria vc fica com o código do jeito que vc quer e ainda usando a galeria padrão, depois vc só teria que descobrir onde exatamente adicionar as novas informações dos campos que vc criou.
Olhando rápido acho que seria + ou – nessa parte
if ( $captiontag && trim($attachment->post_excerpt) ) { $output .= " <{$captiontag} class='gallery-caption'> " . wptexturize($attachment->post_excerpt) . " </{$captiontag}>"; }
Bom, dê uma olhada e me fala ai o que achou ou conseguiu.
Consegui editar a galeria, inserir textos dentro do caption, etc. Estou apenas com problemas para inserir a variável. Entende? Um texto comum eu consigo, apenas não sei configurar a variável dentro do arquivo, amigo.
Obrigado pela ajuda!vc quer dizer que coloca a variável e ela não retorna seu valor mais sim a própria variável em sí?
Se for este o caso seria erro de concatenação creio eu.
Aproveitando, a parte que mencionei que poderia ser ali que vc adicionaria seu código foi mesmo ali?
Saber disso já me ajudaria quando um dia eu for fazer uma galeria com estas opções.Até que a variável não é o problema de retornar ela mesma, seu eu colocar uma variável padrão em aspas simples, ela retorna o valor. Mas, eu acho, que para exibir aquela variável, é necessário adicionar a função dentro do arquivo da galeria, mas não sei como fazer isso :/
E, sim, é naquele local que você me informo, tem tudo lá, modifiquei outras coisas também. Eu olhava o código fonte do site e buscava no arquivo, é bastante simples até.Eu consegui fazer funcionar certinho e aproveitei e testei com mas de uma opção ao mesmo tempo.
Então agora é só personalizar os campos com as informações que deseja mostrar e adicionar ao código.
$output .= "<{$itemtag} class='gallery-item col-{$columns} imagem-{$id}'>"; $output .= " <{$icontag} class='gallery-icon'> $link </{$icontag}>"; if ( $captiontag && trim($attachment->post_excerpt) ) { $output .= " <{$captiontag} class='gallery-caption'>" . wptexturize($attachment->post_excerpt) . "</{$captiontag}>"; } //O novo código mesmo é daqui para baixo $attachments = get_posts(array('post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby, 'post_parent' => $post->ID)); foreach ( $attachments as $key => $valor ) { $author = get_post_meta($attachment->ID, '_ot_author', true); $data_foto = get_post_meta($attachment->ID, '_ot_data', true); //$campo_futuro = get_post_meta($attachment->ID, '_ot_novo_campo_futuro', true); } if($author) {$output .= "<{$captiontag} class='gallery-caption'>Autor: ".$author."</{$captiontag}>"; } if($data_foto) { $output .= "<{$captiontag} class='gallery-caption'>Data: ".$data_foto."</{$captiontag}>"; } //if($campo_futuro) { $output .= "<{$captiontag} class='gallery-caption'>Campo Futuro: ".$campo_futuro."</{$captiontag}>"; }
Cope o código que está abaixo de //O novo código mesmo é daqui para baixo e cole em seu arquivo.
Só coloquei o código acima disso para lhe dar um ponto de referencia melhor.
Se tiver alguma dúvida posta ai e se possível me deixe ver como sua galeria ficou.
Poxa vida, amigo. To meio burro nessa parte aqui, haha. Assim: esse último código que você me passou eu colei no media.php e não deu erro. Mas agora não to entendendo como eu crio esses campos para aparecer na hora do upload.
Aquele primeiro que você me passou, de colar no functions e depois puxar no arquivo da certo.
Agora esse novo, que mostra como exibir o valor dentro do caption q eu não entendi como criar o campo. Quanto a minha galeria, ela ainda está local, estou criando mais coisas. Obrigado.
- O tópico ‘Legenda nas notícias da página inicial’ está fechado para novas respostas.