Fonte: Xemelê
Devido à grande quantidade de comentários que temos recebido demostrando dificuldade na hora de preparar o tema do WordPress para utilizar o Lead Manager, esse post tem como objetivo explicar detalhadamente esse processo…
Para ficar mais simples será demonstrada a criação de capas na página index.php do tema default do wordpress, que fica na pasta ‘wp-content/themes/default/’. Abaixo está o trecho do código em que iremos trabalhar:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a></h2>
<small><?php the_time(’F jS, Y’) ?> <!– by <?php the_author() ?> –></small>
<div class=”entry”>
<?php the_content(’Read the rest of this entry »’); ?>
</div>
Eu destaquei as funções que serão alteradas. Comecemos pela mais difícil:
have_posts()
O WordPress utiliza uma lógica muito interessante para carregamento dos conteúdos, batizado como ‘O LOOP’. Explicando de uma forma resumida, o ‘have_posts()’ retorna true enquanto existir conteúdo a ser carregado no local onde você está.
Seguindo a mesma lógica temos o ‘$covers->have_posts(area, [max])’, onde ‘area’ é o id da área na qual você criou a capa e max é um campo opcional que força a quantidade de posts a ser carregados.
Para não complicar, vamos usar o id da área ‘home’ que já vem por padrão ao instalar o plugin. Substituiremos então:
‘<?php if(have_posts()) : ?>’
por:
‘<?php if($covers->have_posts(1)) : ?>’
E também:
‘<?php while(have_posts()) : the_post(); ?>’
por:
‘<?php while($covers->have_posts(1)) : the_post(); ?>’
Pronto! O pior já passou… Agora é só receita de bolo.
the_post()
A função ‘the_post()’ coloca na memória os dados do post que será chamado. Da mesma forma o ‘$covers->the_post()’ coloca na memória os dados da capa. Então é só alterar:
‘<?php while($covers->have_posts(1)) : the_post(); ?>’
por:
‘<?php while($covers->have_posts(1)) : $covers->the_post(); ?>’
the_title()
Essa função imprime na tela o título do post. Espelhando ela o ‘$covers->the_title()’ imprime o título da capa, quando existir. Caso nenhum título tenha sido informado para a capa, o plugin mostra o título do próprio post. No tema:
‘<?php the_title(); ?>’
será substituido por:
‘<?php $covers->the_title(); ?>’
the_excerpt()
Opa! Essa função não existe no tema… mas ela cumpre um papel semelhante ao ‘the_content(’Read the rest of this entry »’)’, carregando um resumo do post ou, se o resumo estiver em branco, um trecho do conteúdo. Esse campo é muito utilizado por jornalistas com a finalidade de criar chamadas que despertem o interesse dos leitores para aquela notícia.
Já existem temas que utilizam esse recurso, mas, no nosso caso, substituiremos o:
‘<?php the_content(’Read the rest of this entry »’); ?>’
por:
‘<?php $cover->the_excerpt(); ?>’
Assim como o ‘$covers->the_title()’, o ‘$covers->the_excerpt()’ só carrega a chamada da capa se ela existir, do contrário o ‘the_excerpt()’ do post é trazido.
the_permalink()
O ‘the_permalink()’ é responssável por gerar o link para o post. Existem ocasiões em que a capa poderá apontar para outro site (banners por exemplo), nesse casos que o ‘$covers->the_permalink()’ se faz necessário. No tema, mude:
‘<?php the_permalink(); ?>’
para:
‘<?php $covers->the_permalink(); ?>’
Lembrando que ele também carrega o permalink do post se o permalink da capa estiver vazio.
the_thumb()
Por último, mas não menos importante, o ‘$covers->the_thumb()’. Essa função não possui uma irmã nos temas. Surgiu como uma necessidade de controlar onde as imagens seriam carregadas e para funcionar basta adicionar ‘$covers->the_thumb([size[, add]])’ no local do seu tema onde a imagem será apresentada.
Os parâmetros dessa função são opcionais. O size indica o tamanho da imagem a ser carregada e admite apenas o valores ‘medium’ e ‘thumbnail’, enquanto o add pode ser qualquer valor válido para tags do tipo imagem. Por exemplo:
‘<?php $covers->the_thumb(’thumbnail’, ‘width=”100″ class=”semborda”‘); ?>’
A saída da função acima resultará em:
‘<img src=”img/imagem.jpg” width=”100″ class=”semborda” />’
O resultado final será:
<?php if ($covers->have_posts(1)) : ?>
<?php while ($covers->have_posts(1)) : $covers->the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h2><a href=”<?php $covers->the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php $covers->the_title(); ?></a></h2>
<small><?php the_time(’F jS, Y’) ?> <!– by <?php the_author() ?> –></small>
<div class=”entry”>
<?php $covers->the_thumb(’thumbnail’, ‘width=”100″ class=”semborda”‘); ?>
<?php $covers->the_excerpt(); ?>
</div>
A criação de capas não está restrita à index.php, você pode criar capas por categorias, criar sessões para o site, combinar várias capas em uma só página, dividir áreas para cada setor com permissões para os responssáveis… Enfim, vai da necessidade (e criatividade) de cada um.
Espero ter ajudado…









3 Comentários
O Plugin está funcionando do WP 2.6? Instalei no meu e não funcionou!
Ola, tentei de todo jeito fazer funcionar no wordpress 2.6, mas não deu certo.
Sabe me dizer se realmente não funciona no 2.6? Vi Alguns posts sobre isso mas ainda sem resposta.
Abraços e bom trabalho….
atenção para o texto. a função $cover->the_excerpt() tá errada. o certo é $covers->the_excerpt()…com cover no plural. talvez por isso alguns estejam tendo problemas.
Escreva um comentário