May 2010

WordPress

Thumbnail sem custom fields no WordPress

Finalmente um código que funciona e não precisa ficar digitando nada no custom field do seu post no wordpress, inclusive estou usando no blog.
Pra quem não sabe, esse código é pra mostrar uma miniatura da imagem no seu post. Se clicar em uma das tags ou categorias aqui no blog, verá um exemplo do que estou dizendo.

Obs: esse tutorial só funciona se você hospeda as imagens do seu post no seu próprio servidor, fazendo upload delas no painel do wordpress enquanto faz o post.

Salve o código abaixo no functions.php do seu tema:

/* thumbnails posts */
function the_thumb($size = "medium", $add = ""){
global $wpdb, $post;
$thumb = $wpdb->get_row("SELECT ID, post_title FROM {$wpdb->posts} WHERE post_parent = {$post->ID} AND post_mime_type LIKE 'image%' ORDER BY menu_order");
if(!empty($thumb)){
$image = image_downsize($thumb->ID, $size);
print "{$image[0]}";
}
else {
/*
altere o "images" para o nome da pasta de imagens do seu tema 
altere o "thumbnail.png" para o nome da imagem default caso o post não tenha imagens
*/
print get_bloginfo('template_directory')."/images/thumbnail.png";
}
}/* END thumbnails posts */

E no index.php do seu tema (ou no arquivo desejado, desde que seja onde tem o código que gera o post), adicione um dos código abaixo:

Pra usar o thumbnail que é gerado pelo próprio wordpress:

<img src="<?php the_thumb('thumbnail'); ?>" alt="" border="0" width="100" 
height="100"/>

E ainda no código acima você pode alterar a largura (100) e altura (100) para o que desejar. E se você quiser, pode usar a imagem “medium” ou “fullsize” gerada pelo wordpress. Só trocar o nome thumbnail no código acima por medium ou fullsize.

Esse código pega a primeira imagem do post, mas não necessariamente a imagem usada no post. É que quando você faz upload de imagens na hora que está postando, ele pega pela ordem de upload. E isso também significa que você não é obrigado a usar imagens pra que ela apareça ali. Só faz o upload dela enquanto estiver postando, mas não insere no post. E caso não tenha uma imagem, ele pega a default (altere a url no código que vai no functions.php).

Eu vi esse código no blog do Marcelo Mesquita e só adicionei no final do código o else pra mostrar uma imagem caso o post não tenha nenhuma.

WordPress

Arquivo functions.php no WordPress

Muitos não sabem, mas esse arquivo pode ser muito útil no seu tema wordpress.
Geralmente as pessoas usam quando quer colocar alguma função como: função de widgets, thumbnails nos posts, painel de opções do tema… e existem vários códigos que podem ser usado nele, que muitos acabam usando plugins por não saber disso, mas também talvez não saibam que plugins às vezes deixam o blog mais lento.

Se seu tema não tem o functions.php é só você criar ele.
Abra o bloco de notas, coloque o código abaixo e salve com o nome functions.php e coloque ele na pasta do seu tema:

<?php /* inicia */
/* finaliza */ ?>

Agora é só adicionar ali dentro o código com a função desejada.
Pode adicionar quantas funções quiser, só precisa ter cuidado com os if, elseif… alguns códigos podem estar mal feitos, o que acabam gerando erros. Então é sempre bom não sair adicionando tudo quanto é código que ver na internet (que é pra ser colocado no functions.php) sem testar eles. Geralmente eu adiciono um, vejo se está funcionando direito e depois eu adiciono outro… e por aí vai. Porque se algum tive erro, você saberá qual e pode deletar ele ou tentar encontrar o problema e resolver. Se você sair colocando tudo e algum tiver erro, pode dar problema no seu blog inteiro.

Abaixo segue um functions.php com a função de widgets adicionada e com a função que gera um limite de palavras quando é usado o código excerpts:

<?php /* inicia */

/* inicia sidebar */
function blog_widgets_init() {
//widget "Sidebar 1"
register_sidebar( array(
'name' => 'Sidebar 1',
'id' => 'sidebar-1',
'description' => 'Sidebar 1',
'before_widget' => ' <!--widget--><div id="%1$s" class="widget %2$s">',
'after_widget'  => '<div style="clear:both;"></div> </div><!--//widget--> ',
'before_title'  => '<h2 class="title">',
'after_title'   => '</h2> ',
) );
} //finaliza widget "Sidebar 1"
add_action( 'widgets_init', 'blog_widgets_init' );
/* finaliza sidebar */

/* inicia excerpt */
function new_excerpt_length($length) {
return 30;
}
add_filter('excerpt_length', 'new_excerpt_length');
/* fim excerpt */

/* finaliza */ ?>

No código acima, tem a função que ativa os widgets no seu tema, então se você for no painel de controle do seu wordpress em “appearance/widgets” verá que pode alterar seu sidebar por ali. Claro que no seu tema, onde é o sidebar, você precisa usar o seguinte código para que funcione mesmo quando seu blog for visualizado:

<?php /* sidebar 1 */ if ( ! dynamic_sidebar( 'sidebar-1' ) ) : ?>
<?php endif; /* fim sidebar 1 */ ?>

O outro código, de excerpts, é o que limita o tamanho do post pra ser mostrado, por exemplo, na sua página inicial.
Sabe quando entra em alguns blogs e tem só uma parte do post e você tem que clicar no título ou no leia mais pra ler ele todo? Então, esse código faz com que aquele pedaço de post que aparece tenha um limite e seja igual para todos. E claro, na sua página inicial você deleta essa parte:

<?php the_content("Read more &raquo;"); ?>

E coloca essa outra no lugar para que funcione o excerpt e com a função de limite:

<?php the_excerpt(); ?>

Pra você alterar o tamanho do post no excerpt, lá no functions.php, você altera o número 30 (do código excerpts) pra quantidade que desejar.

Isso é só um básico de pra que serve e como usar o functions.php que tem que está dentro da pasta do seu tema. Logo irei compartilhar com vocês alguns códigos que já usei ou testei, e que talvez gostem de alguns pra colocar no blog.

WordPress

Página de arquivos no WordPress

Muitos tem dificuldade de criar uma página arquivos no wordpress, mas não é um bicho de sete cabeças.

Abra o bloco de notas ou seu editor preferido e adicione o código abaixo:

<?php /* Template Name: Archives */ ?>
<?php get_header(); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="title"><?php the_title(); ?></div>
<div class="entry">
<h2>Últimos 20 posts</h2>
<ul><?php wp_get_archives('type=postbypost&limit=20&format=html'); ?></ul>
<div style="clear:both;"></div><br /><br />
<h2>Categorias</h2>
<?php wp_list_categories('show_count=1&title_li='); ?>
<div style="clear:both;"></div><br /><br />
<h2>Meses</h2>
<ul><?php wp_get_archives('type=monthly&show_post_count=1'); ?></ul>
<div style="clear:both;"></div><br /><br />
<h2>Anos</h2>
<ul><?php wp_get_archives('type=yearly&show_post_count=1'); ?></ul>
<div style="clear:both;"></div><br /><br />
<h2>Tags</h2>
<?php wp_tag_cloud('smallest=8&largest=16&orderby=name&number=10000'); ?>
<div style="clear:both;"></div><br />
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php get_footer(); ?>

Configure o código acima de acordo com o seu css, salve ele com o nome page-archives.php e envie pra pasta do seu tema.
Depois entre no painel do wordpress, vá em “Pages / Add New“, crie uma nova página com o nome Arquivos, por exemplo, e em “Attributes” na opção “Template” selecione “Archives” e depois dê um Publish.

Pronto! Nem precisa escrever nada ali no campo de posts. Visualize a página e veja como ficou.

Uncategorized

A vida útil do sinopse.org

Ainda estou digitando sinopse.org no lugar do difluir.com, vai levar um tempinho pra acostumar.

Eu estava olhando meu backup pra pegar os tutoriais que quero colocar aqui (vão ter ainda posts repetido por uns dias) e encontrei tanta coisa que me deu uma peninha de abandonar o Sinopse. Foram tantas amizades maravilhosas que fiz, além das promoções que fui convidada pra participar, dos brindes da Rexona (tenho estoque de desodorante feminino), da Melissa…
Mas o que quero deixar registrado aqui são os lugares onde eu tive algum destaque e fiquei muito feliz:

O Sinopse saiu na revista Jovem de Brasília em uma materia feita pela Flávia

Continue lendo Continue reading