2014-11-24 85 views
0

這似乎有點noob,但我沒有找到一個更好的選擇。我創建了一個自定義循環來僅顯示我創建的自定義帖子類型的標題。自定義帖子查詢WordPress和更好的方式來顯示帖子

實施例:

自定義文章類型:Atuação

  • Contratos(CívelËSocietário)
  • 迪雷託刑法EMPRESARIAL

的問題是:不能 「驗證」在菜單中如果帖子處於活動狀態或只有鏈接。示例:我的訪問者正在訪問Direito Penal Empresarial頁面。但菜單不顯示任何類,所以我可以自定義它。它只顯示了<a href> link

請參閱下面的自定義循環的代碼。

<ul class="menu-advogados"> 
    <?php 
     // WP_Query arguments 
     $args = array (
      'post_type'    => 'atuacao_posts', 
      'pagination'    => false, 
      'order'     => 'ASC', 
      'orderby'    => 'title', 
     ); 

     // The Query 
     $exibir_atuacao_posts = new WP_Query($args); 

     // The Loop 
     if ($exibir_atuacao_posts->have_posts()) { 
      while ($exibir_atuacao_posts->have_posts()) { 
       $exibir_atuacao_posts->the_post(); 
     ?> 
     <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 
     <?php 
      } 
     } else { 
      echo "Nenhum post encontrado"; 
     } 

     // Restore original Post Data 
     wp_reset_postdata(); 
     ?> 
    </ul> 

有沒有更好的解決方案呢?或者,如果沒有,我該如何將「主動」類添加到href?

更新:你可以check out the website住。

回答

1

您需要將當前帖子ID存儲在變量中,那麼您需要將當前帖子ID與列表項目帖子ID進行比較,如果兩者相同則應用活動類。所以,你的代碼會像這個 -

<ul class="menu-advogados"> 
    <?php 
     global $post; 
     $post_id = $post->ID; // Store current page ID in a variable. 

     // WP_Query arguments 
     $args = array (
      'post_type'    => 'atuacao_posts', 
      'pagination'    => false, 
      'order'     => 'ASC', 
      'orderby'    => 'title', 
     ); 

     // The Query 
     $exibir_atuacao_posts = new WP_Query($args); 

     // The Loop 
     if ($exibir_atuacao_posts->have_posts()) { 
      while ($exibir_atuacao_posts->have_posts()) { 
       $exibir_atuacao_posts->the_post(); 
     ?> 
     <li><a href="<?php the_permalink(); ?>" <?php echo ($post_id==$post->ID)?'class="active"':''; ?> ><?php the_title(); ?></a></li> 
     <?php 
      } 
     } else { 
      echo "Nenhum post encontrado"; 
     } 

     // Restore original Post Data 
     wp_reset_postdata(); 
     ?> 
    </ul> 
+0

謝謝! :D解決了問題。 – starkbr 2014-11-24 20:26:57

+1

歡迎您:D @starkbr – user2839914 2014-11-26 17:44:58

0

使用本

// WP_Query arguments 
$args = array (
    'post_type'    => 'atuacao_posts', 
    'post_status'   => 'publish', 
    'pagination'    => false, 
    'order'     => 'ASC', 
    'orderby'    => 'title', 
); 

// The Query 
$query = new WP_Query($args); 

<?php if ($query ->have_posts()) : ?> 

    <!-- the loop --> 
    <?php while ($query ->have_posts()) : $query ->the_post(); ?> 
     <h2><?php the_title(); ?></h2> 
    <?php endwhile; ?> 
    <!-- end of the loop --> 

    <?php wp_reset_postdata(); ?> 

<?php else : ?> 
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
<?php endif; ?> 

爲WP_Query考慮這個link
這是偉大的文章...

+0

我認爲你不清楚我需要什麼:( - 我想使用名爲active的類進行鏈接。請參見[response](http://stackoverflow.com/a/27110295/2356834)。 – starkbr 2014-11-24 20:28:19

相關問題