1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Wordpress] Excluir categorias do get_the_category

Discussão em 'Web Development' iniciada por Divvy, 15 de Julho de 2008. (Respostas: 13; Visualizações: 1290)

  1. Divvy

    Divvy Power Member

    Viva amigos,

    É assim... tenho um blog sobre filmes, e uso as categorias para colocar os generos.
    Por exemplo, num filme tenho:

    Género: Terror, Ficção, Thriller, Ante-Estreia, Estreias de 2008

    O que eu pretendia, era remover as categorias "Ante-Estreia" e "Estreias de 2008".
    Até agora, só consegui arranjar o código abaixo, mas apenas permite remover uma categoria...
    Código:
    <?php foreach((get_the_category()) as $cat) {
    if (!($cat->cat_name=='Ante-Estreia')) echo $cat->cat_name . ' ';
    } ?>
    Como faço para seleccionar múltiplas categorias?
    Já tentei o código abaixo, mas não funcionou:
    Código:
    <?php
      foreach((get_the_category()) as $cat) {
        if (
          $cat->cat_name!=='Ante-Estreia' ||
          $cat->cat_name!=='Estreias de 2008' ||
          $cat->cat_name!=='Estreias de 2007' ||
          $cat->cat_name!=='Estreias de 2006'
        ) echo $cat->cat_name . ' ';
      }
    ?>
    Alguém sabe o que estarei a fazer de errado?
    Ficaria mesmo muito agradecido se alguem me pudesse ajudar.

    P.S. Se fosse possivel fazer isso com o the_category em vez do get_the_category ainda seria melhor, pois preciso que as categorias tenham o href.

    Obrigado :)
     
  2. greven

    greven Folding Artist

    O que pedes não é fácil de fazer, se sequer possível. As categorias infelizmente não foram feitas para esse tipo de uso que queres.

    Mas é muito fácil de contornar... tens é que o fazer manualmente.

    Mete simplesmente um widget de texto/php e Linka tu as categorias manualmente. Até podes por um bocado de CSS e fazer os mesmos com imagens, etc..

    Tipo o que eu fiz nesta página mas na sidebar (que penso ser o que tu queres): http://www.paintbits.com/tutorials/
     
  3. Divvy

    Divvy Power Member

    greven, obrigado pela resposta ao meu tópico :)
    Gostei da tua solução, até já tinha pensado nisso... mas não me agrada fazer isso manualmente a quase 1.000 posts hehe

    Será que não há outra solução?
    Se há forma de excluír uma categoria, porque não será que há forma de excluír mais do que uma?

    Também encontrei outra solução:
    http://designintellection.com/2007/excluding-wordpress-categories-with-css/
    Mas não é tão fiável... e não fica perfeito. Além do mais, não funciona com todas as versoes dos browsers, apenas com as mais recentes, o que é chato.
     
  4. greven

    greven Folding Artist

    1000 Posts? Mas não tens já os posts nas categorias? Se já estão basta fazeres link para essas categorias, não custa nada. Tipo:


    http://www.paintbits.com/category/cinema/

    Como podes ver vai ter à minha categoria de design. Podia fazer o mesmo para as categorias que quisesse. :)
     
  5. hostmake

    hostmake Power Member

    Mas sendo um blog de filmes, é possível que ele tenha categorias muito globais, e o que ele quer é especifico, não pode simplesmente encaminhar para os sítios das categorias, digo eu.
     
  6. Divvy

    Divvy Power Member

    Exactamente hehe :)
    Bom, vou continuar a tentar arranjar uma solução... acho que basta corrigir o meu codigo acima, só não sei o quê...
    Ninguém quer tentar? nenhuma dica? :)
     
  7. greven

    greven Folding Artist

    Não percebo sorry. :(

    Então mas tu não disseste que só querias 5 categorias listadas? Então eu percebi mal. Afinal isto não é para listar as Categorias no sidebar?
     
  8. Divvy

    Divvy Power Member

    Está tudo bem explicadinho no primeiro post hehe
     
  9. greven

    greven Folding Artist

    Já percebi que queres remover uma categoria, mas de onde? Eu percebi que era para implementar na função the_category, mas para usar onde? Podes mostrar o teu blog para ver onde queres isso?
     
  10. hostmake

    hostmake Power Member

    PHP:
      if (
          
    $cat->cat_name!=='Ante-Estreia' ||
          
    $cat->cat_name!=='Estreias de 2008' ||
          
    $cat->cat_name!=='Estreias de 2007' ||
          
    $cat->cat_name!=='Estreias de 2006'
        

    Para

    PHP:
      if ($cat->cat_name != 'Ante-Estreia' AND $cat->cat_name != 'Estreias de 2008' AND $cat->cat_name != 'Estreias de 2007' AND $cat->cat_name != 'Estreias de 2006'
     
  11. Divvy

    Divvy Power Member

    Não... entendeu mal. eu não quero remover uma categoria, se fosse so para remover uma, eu já tinha conseguido com o código que meti acima... eu quero é remover várias (especificas) categorias.

    A lista aparece dentro de cada post... no caso do meu theme, o código encontra-se no file postinfo.php mas na maior parte dos themes é no file single.php
    Apenas substituí o código padrão:
    Código:
      <?php the_category(', '); ?>

    Por:
    Código:
      <?php foreach((get_the_category()) as $cat) {
    if (!($cat->cat_name=='Ante-Estreia')) echo $cat->cat_name . ' ';
    } ?>
    E funcionou perfeitamente para excluír sempre a categoria "Ante-Estreia", mas preciso de excluir mais categorias...




    Outro exemplo: http://www.filmes-de-terror.com/the-mummy-3-tomb-of-the-dragon-emperor/
    Se clicar em "Categorias e Tags"
    Vai aparecer: Categorias: Ante-Estreias • Estreias de 2008 • Filmes de Acção • Filmes de Aventura • Filmes de Fantasia • Filmes de Ficção Ciêntifica • Filmes de Thriller
    Neste caso, não quero que as categorias "Ante-Estreias" e "Estreias de 2008" apareçam na lista de categorias do post... é apenas isso, excluír apenas dessa lista... :)
    Consigo fazer isso a uma categoria com o código que coloquei no primeiro post, mas não a mais do que uma.
     
  12. greven

    greven Folding Artist

    Ok, já percebi. :) É uma situação particular. Pensei que quisesses fazer simplesmente um menu na sidebar com algumas categorias. :)

    Assim é mais complicado. :D Experimenta o código do hostmake. :)
     
  13. Divvy

    Divvy Power Member

    hostmake, funcionou perfeitamente !!!!!
    Não sei como te agradecer... muito obrigado :)

    Já agora, sabes como fazer as categorias ficarem com links?
    É que usando a função get_the_category, apenas aparece o nome das categorias em texto.
    Se usasse a função the_category, já aparecia com links...

    Se não souberes como fazer não faz mal... já me ajudaste bastante :)

    Encontrei este código que permite colocar links nas categorias, mas não sei como implementar o href no meu código...
    Código:
    <?php
    foreach( get_the_category() as $category ) {
        if( ($category->cat_ID > 2) && ($category->cat_ID < 9) ) {
            echo '<tr><td><a href="' . get_category_link($category->cat_ID) . '">' . $category->cat_name . '</td></tr>';
        }
    }
    ?>
     
  14. Divvy

    Divvy Power Member

    Já consegui, muchas gracias outra vez :D
     

Partilhar esta Página