Novas Funções (Functions) do WordPress – Parte 1

Wordpress 2.8Hoje vou trazer um pouquinho das novidades do WordPress 2.8, mais antes disso quero dar a minha avaliação sobre essa nova versão:

Realmente melhorou muito, algumas novidades são bastante úteis como,  melhor gerenciamento de tags, adição de novos temas sem necessidade de ftp (basta ter o zip, fazer o upload e depois é só alegria) e muito mais. Pra mim a função de maior revelância foi a parte de plugins, buscar e instalar novos plugins rapidamente realmente merece destaque.

É claro que isso também é possivel com templates/temas, mas convenhamos,  não vou trocar o template toda hora… com o plugins é mais bacana pois podemos incrementar nosso website.

Pontos que deixaram a desejar também há, vou falar somente um. Quando você arasta um widget para a sidebar ele automaticamente salva mais não exibe nenhum alerta, o mesmo acontece quando se altera um widget. De qualquer modo parabéns a equipe do WordPress…

Voltando para as novas função do WordPress 2.8 mais especificamente para o desenvolvimento de templates, existem algumas functions bacanas e que vem a calhar, dentre as que eu conheço vou falar sobre:

  1. body_class();
  2. is_page ou is_page_or_sub();
  3. is_category_or_sub
  4. Talvez mais…

Vai ser muita coisa então vou dividir em partes pra não ficar cansativo. Hoje vamos falar sobre a function body_class();.

Function body_class();.

Funciona basicamente assim, cada página tera uma classe que a identifica, exemplo:

<body class="single postid-64">

Ou seja, uma página com 2 classe para maior manipulação. Mas pra que isso você pode me perguntar… é mais para personalização com CSS, neste exemplo podemos criar um fundo (background) diferente para as páginas de posts (single) ou então somente para o post de número 64. Outro exemplo desta função seria para usuários registrados, ficaria algo mais ou menos assim:

<body class="single postid-64 logged-in">

Confira a lista completa de possibilidades:

  • rtl
  • home
  • blog
  • archive
  • date
  • search
  • paged
  • attachment
  • error404
  • single postid-(id)
  • attachmentid-(id)
  • attachment-(mime-type)
  • author
  • author-(user_nicename)
  • category
  • category-(slug)
  • tag
  • tag-(slug)
  • page
  • page-parent
  • page-child parent-pageid-(id)
  • page-template page-template-(template file name)
  • search-results
  • search-no-results
  • logged-in
  • paged-(page number)
  • single-paged-(page number)
  • page-paged-(page number)
  • category-paged-(page number)
  • tag-paged-(page number)
  • date-paged-(page number)
  • author-paged-(page number)
  • search-paged-(page number)

Como usar esta função?

Antes de mais nada, precisamos localizar a tag body em nosso template, geralmente fica no arquivo header.php, feito isso subistitua <body> por:

<body <?php body_class(); ?>>

Salve o arquivo e pronto, nossa função já está funcionando.

Usando estilos dinâmicos – CSS

Geralmente quando vamos fazer o CSS de um website fazemos assim:

body{
background: #dddddd;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
color: #1c1d21;}

Agora considere o seguinte, supondo que o a classe gerada seja uma página de post, logo será .single. O que temos que fazer:

body.single{
background: #aaaaaa;
font-size: 14px;
font-family: Arial, Helvetica, sans-serif;
color: #1c1d21;
}

Neste exemplo eu somente mudei o fundo de #dddddd para #aaaaaa… lembrando que o backgroud com a cor #aaaaaa aparecerá somente nas páginas de post. Pegou o espírito da coisa? Fácil não?

Espero que tenham entendido, qualquer dúvida ou sugestão, é só comentar!

2 Comentários

  1. Hugo Luis disse:
    31 de julho de 2009 às 14:42

    Muito bom mesmo..
    Parabéns amigo Mateus, pela sua belíssima atuação em seu tutorial explicando uma das funções designadas que o wordpress 2.8 está trazendo =]
    visto que como sempre a equipe do wordpress cada vez mais inovando.

  2. Felipe Marcelino disse:
    24 de novembro de 2009 às 10:32

    Valeu pelas dicas cara …
    tava me batendo um pouco pra mudar o body das outras páginas … ai vi aqui q faltava colocar isso no header …<body >

    Abraços Obrigado e sucesso

Faça um Comentário