Suporte » Outros assuntos » Pesquisa MySql não retorna post's em categorias com acentos

  • Resolvido Bruno Eduardo

    (@brunoecr)


    Olá pessoal,

    Estou com um problema na questão de query_post em um tema do wordpress, onde quando determino qual a categoria que desejo que apareça na página inicial do site e a mesma contém acento, não retorna nenhuma postagem da categoria, fica em branco, veja abaixo o código que está buscando as postagens das categorias.

    <?php get_header(); ?>

    <?php $cat_tab_1 = get_option(‘lp_tab_cat_1’); ?>

    <?php $cat_tab_2 = get_option(‘lp_tab_cat_2’); ?>

    <?php $cat_tab_3 = get_option(‘lp_tab_cat_3’); ?>

    <?php $post_number = get_option(‘lp_post_num’); ?>

    <div id=”content”>
    <?php if ( get_option(‘lp_latest_posts’) != ‘true’ ) { ?>

    <ul class=”tabs”>

    • <?php echo $cat_tab_1 ?>
    • <?php echo $cat_tab_2 ?>
    • <?php echo $cat_tab_3 ?>
    • <!– tab-container –>

      <div class=”tab_container”>

      <!– tab-content begin –>

      <div id=”tab1″ class=”tab_content”>

      <?php query_posts(“category_name=$cat_tab_1&showposts=12”); ?>

      <?php while (have_posts()) : the_post(); ?>

      <ul class=”tab-post”>

    • <div class=”date left”><?php the_time(‘M j’); ?></div>

      <h4 class=”post-title event-post left”>“><?php the_title(); ?></h4>

      <div class=”clear”></div>

    • <?php endwhile;?>

      </div>

      <div id=”tab2″ class=”tab_content”>

      <?php query_posts(“category_name=$cat_tab_2&showposts=12”); ?>

      <?php while (have_posts()) : the_post(); ?>

      <ul class=”tab-post”>

    • <div class=”date left”><?php the_time(‘M j’); ?></div>

      <h4 class=”post-title event-post left”>“><?php the_title(); ?></h4>

      <div class=”clear”></div>

    • <?php endwhile;?>

      </div>

      <div id=”tab3″ class=”tab_content”>

      <?php query_posts(“category_name=$cat_tab_3&showposts=12”); ?>

      <?php while (have_posts()) : the_post(); ?>

      <ul class=”tab-post”>

    • <div class=”date left”><?php the_time(‘M j’); ?></div>

      <h4 class=”post-title event-post left”>“><?php the_title(); ?></h4>

      <div class=”clear”></div>

    • <?php endwhile;?>

      </div>

      <!– tab-content end –>

      </div>

      <?php } else { ?>

      <div id=”main-content”>

      <?php query_posts(“showposts=$post_number”); ?>

      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

      <div class=”post”>

      <h2 class=”line”>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></h2>

      <?php the_post_thumbnail(); ?>

      <?php the_excerpt(); ?>

      <p class=”meta”><?php the_time(‘F j, Y’); ?> in <?php the_category(‘, ‘); ?> by <?php the_author_posts_link() ?></p>

      <p class=”meta”><?php comments_popup_link(‘No comments yet’, ‘1 comment’, ‘% comments’, ”, ‘Comments are disabled for this post’); ?></p>

      </div>

      <!–/box–>

      <?php endwhile; else: ?>

      <h2>404 – Not Found</h2>

      <p>The page you are looking for is not here.</p>

      <?php endif; ?>

      </div>

      <?php } ?>

      </div>

      <div id=”content-right”><?php get_sidebar(‘home’); ?></div>

      </div>

    Será que alguém poderia me ajudar?

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Apesar do nome ser category_name este parâmetro deve receber o slug da categoria e não o nome dela

    veja
    http://codex.wordpress.org/Function_Reference/query_posts#All_Posts_in_a_Category

    Criador do tópico Bruno Eduardo

    (@brunoecr)

    O único problema é que o nome da categoria é em um campo de seleção e não aberto para eu colocar, já tentei achar onde que estava selecionando a categoria para mudar para o slug e nenhum sucesso.

    Veja abaixo o código de onde está a configuração para selecionar as categorias que irei colocar.

    <?php

    $themename = “LightofPeace”;

    $shortname = “lp”;

    $categories = get_categories(‘hide_empty=2&orderby=name’);

    $wp_cats = array();

    foreach ($categories as $category_list ) {

    $wp_cats[$category_list->cat_ID] = $category_list->cat_name;

    }

    array_unshift($wp_cats, “Choose a category”);

    array( “name” => “Tab #1 category”,

    “desc” => “Posts from this category will be shown on the Tab 1”,

    “id” => $shortname.”_tab_cat_1″,

    “type” => “select”,

    “options” => $wp_cats,

    “std” => “Choose a category”),

    array( “name” => “Tab #2 category”,

    “desc” => “Posts from this category will be shown on the Tab 2”,

    “id” => $shortname.”_tab_cat_2″,

    “type” => “select”,

    “options” => $wp_cats,

    “std” => “Choose a category”),

    array( “name” => “Tab #3 category”,

    “desc” => “Posts from this category will be shown on the Tab 3”,

    “id” => $shortname.”_tab_cat_3″,

    “type” => “select”,

    “options” => $wp_cats,

    “std” => “Choose a category”),

    ?>

    Obrigado desde já pela ajuda.

    Tente alterar o código

    foreach ($categories as $category_list ) {
    
    $wp_cats[$category_list->cat_ID] = $category_list->cat_name;
    
    }

    Para

    foreach ($categories as $category_list ) {
    
    $wp_cats[$category_list->cat_ID] = $category_list->cat_slug;
    
    }

    Se não for cat_slug então deve ser só slug, não lembro agora de cabeça.

    Veja se com esta aletração o valor passa a ser o slug e não o nome e se você tem como capturar este valor.

    Criador do tópico Bruno Eduardo

    (@brunoecr)

    Perfeito, funcionou perfeitamente, alterei para somente “slug”, pois já havia tentado como “cat_slug” e não havia dado certo, coloquei apenas “slug” e funcionou perfeitamente.

    O código ficou da seguinte maneira para quem tiver o mesmo problema:

    foreach ($categories as $category_list ) {

    $wp_cats[$category_list->cat_ID] = $category_list->slug;

    }

    Obrigado Myst1010 pela grandiosa ajuda.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Pesquisa MySql não retorna post's em categorias com acentos’ está fechado para novas respostas.