0

Ich habe Bits und Stücke von verschiedenen Beispielen zusammengeflickt zusammen, aber kann nicht scheinen, meinen Kopf darum zu wickeln.Regelmäßige Beiträge zuerst (absteigende Reihenfolge), dann benutzerdefinierte Beitragstyp (alphabetisch) in WP Suche

Ich habe regelmäßige Blog-Posts (News), die ich mit den neuesten oben gefolgt von einem benutzerdefinierten Beitragstyp (Unternehmen) angezeigt würde, die ich unter den News gruppiert werden möchte. Ich benutze Sage und das ist mein erstes Thema.

Hier ist mein Anfänger Code so weit:

<?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

Sie haben also einen spezifischen benutzerdefinierten Beitragstyp für Geschäftsartikel und nicht verwendete Kategorien erstellt? –

+0

Bitte um Klarstellung, damit ich die vorgeschlagene Lösung für Sie anpassen kann. –

+0

Das CPT-Geschäft hat sowohl Kategorien als auch Tags. – James

Antwort

0

Ich denke, das Problem ist, dass Sie über jeden Beitrag, um sind Looping und zu entscheiden, was damit zu tun. Dies führt dazu, dass die Ausgabe in der gleichen Reihenfolge wie die Eingabe erfolgt.

Ich spreche nicht sehr fließend PHP, aber ich denke, was passiert ist, dass der Algorithmus wie folgt lautet:

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

Ich glaube, Sie zwei Schleifen haben wollen, wie folgt aus:

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

Leider sehe ich keinen offensichtlichen Verweis in einem Array gespeichert und Schleife über. Ich weiß wirklich nicht, wie Salbei funktioniert, deshalb muss ich Ihnen die Implementierung überlassen. Meine beste Schätzung - und ich bezweifle ernsthaft, dass dies funktioniert - ist wie folgt:

<?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; ?> 

Viel Glück!

Verwandte Themen