Cum să afișați postările conexe în funcție de categorie (WordPress, Posturi, Categorii, Posturi De Interogare, Obține Posturi)

Felix a intrebat.

În site-ul meu cu galerie vreau să arăt și alte poze sub poza curentă (într-o singură postare). Am văzut mai multe coduri dar cere să specific categoria, dar nu vreau să specific categoria manual în cod vreau ca codul în sine să obțină ID-ul sau numele categoriei. mi-ar fi mult mai ușor dacă aș obține posturile complete în loc de titlul postului, astfel încât să le pot afișa ca în home și categoria

Comentarii

  • possible duplicate of Cum se afișează postările legate de aceeași categorie? –  > Por kaiser.
2 răspunsuri
Sufiyan Ghori

Întrebarea a fost deja pusă și răspunsul a fost postat și el,

Cum să afișați postările conexe din aceeași categorie?

Adăugați acest cod în interiorul single.php după o buclă, oriunde doriți să afișați postările legate,

<?php

$related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) );
if( $related ) foreach( $related as $post ) {
setup_postdata($post); ?>
 <ul> 
        <li>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            <?php the_content('Read the rest of this entry &raquo;'); ?>
        </li>
    </ul>   
<?php }
wp_reset_postdata(); ?>

Acesta va afișa postările conexe din aceeași categorie cu extrasul și titlul postului ,însă dacă doriți ca acest cod să afișeze doar titlul postării conexe atunci eliminați această linie,

<?php the_content('Read the rest of this entry &raquo;'); ?>

Comentarii

  • Îmi pare rău că nu sunt un începător în wordpress și PHP.Dacă nu vă supărați, puteți să-mi spuneți cum să pun acest cod în single.php? –  > Por Felix.
  • citiți din nou răspunsul meu am adăugat câteva detalii (TESTAT) – –  > Por Sufiyan Ghori.
  • îmi pare rău, înlocuiți „ODD” cu „the” în codul de mai sus – -.  > Por Sufiyan Ghori.
  • eroarea a fost eliminată din cod și acum funcționează perfect (Tested), copiați codul modificat din răspunsul meu –  > Por Sufiyan Ghori.
  • înseamnă că ați eliminat această linie de cod, <?php the_excerpt(‘Read the rest of this entry &raquo;’); ?>, adăugați-o înapoi unde era –  > Por Sufiyan Ghori.
Lawrence Oputa

Iată o altă opțiune curată și foarte flexibilă:

Puneți acest cod în fișierul dvs. functions.php

function example_cats_related_post() {

    $post_id = get_the_ID();
    $cat_ids = array();
    $categories = get_the_category( $post_id );

    if(!empty($categories) && !is_wp_error($categories)):
        foreach ($categories as $category):
            array_push($cat_ids, $category->term_id);
        endforeach;
    endif;

    $current_post_type = get_post_type($post_id);

    $query_args = array( 
        'category__in'   => $cat_ids,
        'post_type'      => $current_post_type,
        'post__not_in'    => array($post_id),
        'posts_per_page'  => '3',
     );

    $related_cats_post = new WP_Query( $query_args );

    if($related_cats_post->have_posts()):
         while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?>
            <ul>
                <li>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                    </a>
                    <?php the_content(); ?>
                </li>
            </ul>
        <?php endwhile;

        // Restore original Post Data
        wp_reset_postdata();
     endif;

}

Acum puteți apela pur și simplu funcția oriunde în site-ul dvs. folosind:

<?php example_cats_related_post() ?>

Este posibil să doriți să eliminați elementele de listă sau să le stilizați în funcție de nevoile dumneavoastră.