Postado em 14 de outubro de 2010 por Henderson | Categorias: Loop no Wordpress, Posts | Tags: Lista de Posts | 1 Comentário » | Comentar
Função é útil para exibir o conteúdo, resumo, campos personalizados. Coloque a seguinte função em functions.php do seu tema do WordPress:
function recent_posts($no_posts = 10, $excerpts = true) {
global $wpdb;
$request = "SELECT ID, post_title, post_excerpt FROM $wpdb->posts WHERE post_status = 'publish' AND post_type='post' ORDER BY post_date DESC LIMIT $no_posts";
$posts = $wpdb->get_results($request);
if($posts) {
foreach ($posts as $posts) {
$post_title = stripslashes($posts->post_title);
$permalink = get_permalink($posts->ID);
$output .= '<li><h2><a href="' . $permalink . '" rel="bookmark" title="Permanent Link: ' . htmlspecialchars($post_title, ENT_COMPAT) . '">' . htmlspecialchars($post_title) . '</a></h2>';
if($excerpts) {
$output.= '<br />' . stripslashes($posts->post_excerpt);
}
$output .= '</li>';
}
} else {
$output .= '<li>No posts found</li>';
}
echo $output;
}
Para chamar a função insira o código abaixo em algum arquivo do tema:
<?php recent_posts(); ?>
Postado em 6 de agosto de 2010 por Henderson | Categorias: Posts | Tags: Lista de Posts, Lista de ùltimos posts, Resumo | 1 Comentário » | Comentar
A função the_excerpt() do WordPress retorna o conteúdo do campo Resumo do post ou se o campo resumo estiver vazio retorna um certo número de caracteres do corpo do texto.
Abaixo segue uma função que facilitará que você controle vários limites de caracteres no seu template.
Insira o código abaixo no arquivo functions.php do seu tema:
function excerpt($limit) {
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'(...)';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
return $excerpt;
}
?>
Agora para usar a função no seu tema insira o código abaixo onde você quiser limitar com um número específico de caracteres o resumo do post.
<?php echo excerpt(50); ?>
Créditos Mateus Neves
Abaixo um exemplo prático que pega os 3 últimos posts da categoria novidades colocando o resumo com 30 caracteres:
<?php query_posts('category_name=Novidades&howposts=3&orderby=date'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<div id="box_direita_destaques"> <? echo excerpt(30); ?> </div>
<br /><a href="<?php the_permalink(); ?>Leia mais</a><br />
<br /><br /><br /><?php endwhile; endif; ?>
Para limitar a quantidade de caracteres do post que será mostrado na tela use o comando the_content_limit() dentro do loop do WordPress. O número será a quantidade de caracteres do post que será mostrado na tela :
<?php the_content_limit(190); ?>
Limitar quantidade de caracteres no título do post:
<?php
$limit = 45;
$summary = get_the_title();</pre>
if (strlen($summary) > $limit)
$summary = substr($summary, 0, strrpos(substr($summary, 0, $limit), ' ')) . '...';
?>
Postado em 21 de julho de 2010 por Henderson | Categorias: Loop no Wordpress, Posts | Tags: array(), get_posts(), Lista de Posts, Lista de ùltimos posts, Post_name, Query_posts | Sem comentários » | Comentar
Como pegar os 6 últimos posts da categoria Novidades, exibindo um link pemanente para os posts:
<ul>
<?
$args = array(
'numberposts' => 6,
'category_name'=>'Novidades',
'orderby'=>'date'
);
$posts_blog = get_posts($args);
foreach($posts_blog as $blogp)
{ ?>
<li><a href="<?=the_permalink($blogp->guid);?>"><strong><?=$blogp->post_title;?></strong></a></li>
<? } ?>
</ul>
Para pegar o ID do post oa inves do permalink, basta mudar a tag HREF para:
<a href="<?=$blogp->guid;?>">
Se preferir montar o link do post usando a ID como variavel utilize estes exemplos:
<a href="/?p=<?=$blogp->ID;?>">Leia mais</a>
<a href="<?php echo get_option('home'); ?>/?p=<?=$blogp->ID; ?>" title="Continuar lendo ">Continuar Lendo</a>
Também pode ser montado o permalink do post usando o parametro post_name que pega o nome do post:
<a href="/<?=$blogp->post_name;?>">Leia mais</a>
Abaixo um exemplo de como pegar os 3 últimos posts da categoria artigos, criando um link com o nome do post:
<ul>
<?
$args = array(
‘numberposts’ =>3,
‘category_name’=>’Artigos’,
‘orderby’=>’date’
);
$posts_blog = get_posts($args);
foreach($posts_blog as $blogp)
{ ?>
<li><a href=”<?php echo get_option(‘home’); ?>/<?=$blogp->post_name;?>”><strong><?=$blogp->post_title;?></strong></a></li>
<? } ?>
</ul>
Para ler mais de uma categoria, troque ‘category_name’=>’Artigos’, pela linha abaixo. Os números significam os ID’s das categorias:
'categories'=>'3,5',
Uma outra forma de fazer um loop em uma certa categoria pegando os links dos posts. Abaixo um exemplo que lista os 6 últimos posts da categoria notícias:
<ul>
<?php query_posts("category_name=Notícias&showposts=6"); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a title="Acesse <?php the_title(); ?>" href="<?php the_permalink() ?>">
<?php the_title(); ?></a>
</li>
<?php endwhile; endif; ?>
</ul>
Para ler mais de uma categoria use a ID da categoria separado por virgula no parametro INCLUDE:
<?php query_posts("orderby=date&include=3,5&showposts=6"); ?>
Para saber mais sobre o método Query_posts, acesse:
http://www.pinceladasdaweb.com.br/blog/2008/03/14/query_posts-aprenda-a-personalizar-seu-blog-wordpress/