0

私はさまざまな例のビットとピースを一緒に盛り上げてきましたが、これについて私の頭を包んでいるようには見えません。WP検索の最初の(降順)、カスタムポストタイプ(アルファベット)

私は最近の上に表示されたいと思う定期的なブログ記事(ニュース)と、ニュースの下にグループ化したいカスタム投稿タイプ(企業)があります。私はセージを使っています。これが私の最初のテーマです。私は、問題は、あなたがために、全ての投稿をループし、それをどうするかを決定しているということだと思います

<?php get_template_part('templates/page', 'header'); ?> 

    <?php if (!have_posts()) : ?> 
     <div class="alert alert-warning"> 
      <?php _e('Sorry, no results were found.', 'sage'); ?> 
     </div> 
     <?php get_search_form(); ?> 
      <?php endif; ?> 

       <?php if (have_posts()) : ?> 
        <?php while (have_posts()) : the_post(); ?> 
         <?php $post_type = get_post_type_object(get_post_type()); ?> 
          <?php $type = get_post_type(); ?> 

           <?php if ($type == 'post') { ?> 
            <h2>News Results</h2> 
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
             <div> 
              <a href="<?php the_permalink(); ?>"> 
               <?php $cats=get_the_category(); ?> 
                <?php echo $cats[0]->cat_name; ?> 

              </a> 
             </div> 
             <div> 
              <h3><?php the_title(); ?></h3> 

              <div class="result-excerpt"> 
               <?php if (has_excerpt($post->ID)) { 
       echo the_excerpt(); 
      } else { 
       echo get_excerpt(); 
      } ?> 
              </div> 

             </div> 
            </article> 

            <?php } elseif ($type == 'business') { ?> 

             <h2>Business Results</h2> 
             <article <?php post_class(); ?>> 
              <header> 
               <h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
               <?php if (get_post_type() === 'post') { get_template_part('templates/entry-meta'); } ?> 
              </header> 
              <div class="entry-summary"> 
               <?php the_excerpt(); ?> 
              </div> 
              <a href="<?php the_permalink(); ?>"> 
               <?php $cats=get_the_category(); ?> 
                <?php echo $cats[0]->cat_name; ?> - 
                 <?php the_title(); ?> 
              </a> 
              <h3><?php echo the_sub_field('title'); ?></h3> 
              <?php if(get_sub_field('content')): ?> 
               <div class="result-excerpt"> 
                <?php echo custom_field_excerpt(); ?> 
               </div> 
               <?php endif; ?> 
             </article> 

             <?php } ?> 

              <?php endwhile; ?> 
               <?php endif; ?> 
+0

ビジネス用の特定のカスタム投稿タイプを作成しましたが、カテゴリは使用していませんか? –

+0

明確にするために提案された修正を調整することができます。 –

+0

CPTビジネスにはカテゴリとタグの両方があります。 – James

答えて

0

はここで、これまでの私の初心者のコードです。これにより、入力と同じ順序で出力が出力されます。

私は非常に流暢なPHPを話すことはありませんが、私は何が起こっていることは、アルゴリズムは次のように読み込むことであると思う:

-for each post: 
    - if it's a 'post', display it like «this» 
-for each post: 
    - if it's a 'business', display it like «this» 
:私はあなたがこのような二つのループを持つようにしたいと思います

-for each post: 
    - if it's a 'post', display it like «this» 
    - otherwise, if it's a 'business', display it instead like «this» 

残念ながら、配列に格納してループオーバーするという明確な参照はありません。私はセージがどのように動作するのか本当に分からないので、私はあなたに実装を残す必要があります。私の最高の推測 - と私は心から、これは動作しないだろうが - 次のとおりです。

<?php get_template_part('templates/page', 'header'); ?> 

<?php if (!have_posts()) : ?> 
    <div class="alert alert-warning"> 
     <?php _e('Sorry, no results were found.', 'sage'); ?> 
    </div> 
    <?php get_search_form(); ?> 
     <?php endif; ?> 

      <?php if (have_posts()) : ?> 
       <?php while (have_posts()) : the_post(); ?> 
        <?php $post_type = get_post_type_object(get_post_type()); ?> 
         <?php $type = get_post_type(); ?> 

          <?php if ($type == 'post') { ?> 
           <h2>News Results</h2> 
           <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
            <div> 
             <a href="<?php the_permalink(); ?>"> 
              <?php $cats=get_the_category(); ?> 
               <?php echo $cats[0]->cat_name; ?> 

             </a> 
            </div> 
            <div> 
             <h3><?php the_title(); ?></h3> 

             <div class="result-excerpt"> 
              <?php if (has_excerpt($post->ID)) { 
      echo the_excerpt(); 
     } else { 
      echo get_excerpt(); 
     } ?> 
             </div> 

            </div> 
           </article> 

             <?php endwhile; ?> 
              <?php endif; ?> 







     <?php if (!have_posts()) : ?> 
      <div class="alert alert-warning"> 
       <?php _e('Sorry, no results were found.', 'sage'); ?> 
      </div> 
      <?php get_search_form(); ?> 
       <?php endif; ?> 

        <?php if (have_posts()) : ?> 
         <?php while (have_posts()) : the_post(); ?> 
          <?php $post_type = get_post_type_object(get_post_type()); ?> 
           <?php $type = get_post_type(); ?> 

            <?php if ($type == 'business') { ?> 

              <h2>Business Results</h2> 
              <article <?php post_class(); ?>> 
               <header> 
                <h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
                <?php if (get_post_type() === 'post') { get_template_part('templates/entry-meta'); } ?> 
               </header> 
               <div class="entry-summary"> 
                <?php the_excerpt(); ?> 
               </div> 
               <a href="<?php the_permalink(); ?>"> 
                <?php $cats=get_the_category(); ?> 
                 <?php echo $cats[0]->cat_name; ?> - 
                  <?php the_title(); ?> 
               </a> 
               <h3><?php echo the_sub_field('title'); ?></h3> 
               <?php if(get_sub_field('content')): ?> 
                <div class="result-excerpt"> 
                 <?php echo custom_field_excerpt(); ?> 
                </div> 
                <?php endif; ?> 
              </article> 

              <?php } ?> 

               <?php endwhile; ?> 
                <?php endif; ?> 

幸運!

関連する問題