Cum obțin URL-ul categoriei din get_the_category?

7 mar. 2016, 13:30:41
Vizualizări: 36.8K
Voturi: 5

Bucla mea de mai jos afișează ultimele 4 postări din aceeași categorie ca și postarea vizualizată în prezent. Aceasta este localizată în single.php.

Încerc să obțin URL-ul acelei categorii pentru a putea face un link înapoi la category.php pentru a vedea toate postările din aceeași categorie. Am crezut că folosirea slug-ului categoriei ar funcționa, dar codul meu de mai jos nu afișează nimic:

<?php
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1"> Link către postarea actuală</a>

    <?php } endforeach; ?>

<a href="<?php bloginfo('url'); ?>/categories/<?php echo $childcat->cat_slug; ?>" title="Vezi toate" class="btn border"><i class="i-right-double-arrow"></i> Vezi toate <?php echo $childcat->cat_slug; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>
1
Comentarii

Acest și acest material chiar m-au ajutat să înțeleg acest subiect.

lowtechsun lowtechsun
15 iun. 2017 11:53:40
Toate răspunsurile la întrebare 2
0

Utilizare:

get_category_link( $category_id );

Vezi:

https://codex.wordpress.org/Function_Reference/get_category_link

În cazul tău specific:

<?php
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1"> Link către articolul actual</a>

    <?php } endforeach; ?>

<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>" title="Vezi toate" class="btn border"><i class="i-right-double-arrow"></i> Vezi toate <?php echo $category->name; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>
7 mar. 2016 13:33:28
2

UN COD SIMPLU ȘI CURAT

Sunt începător :)

Am modificat codurile date de Adam și am eliminat părțile inutile care nu erau necesare pentru a răspunde la întrebarea inițială.

A funcționat perfect pentru mine.

Încearcă și tu.

Te rog să-mi spui dacă a funcționat și pentru tine :)

<?php $categories = get_the_category();
foreach ($categories as $category) :
endforeach; ?>

<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>">
  LINK CĂTRE CATEGORIA POSTĂRII CURENTE >>
</a>

SAU

<?php $categories = get_the_category();
foreach ($categories as $category) : ?>

Categoria este:
<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>">
  <?php echo $category->name; ?>
</a>

<?php endforeach; ?>

COMBINĂ ALTE ELEMENTE DUPĂ PREFERINȚE. JOACĂ-TE CU ELE, PRIETENE.

26 nov. 2020 10:29:06
Comentarii

Nu înțeleg foreach-ul gol. Cum funcționează asta? Selectează doar ultima intrare din $categories ca $category, așa că afișezi linkul doar pentru ultima categorie?

Rup Rup
26 nov. 2020 13:10:01

Se pare că foreach este obligatoriu. Fără el, codul nu va funcționa corect. Poți folosi orice termen. Poți decide să schimbi în $category = get_the_category(); foreach ($category as $category) : Sper că acest lucru te ajută. Nu uita, sunt începător. Doar experimentez cu diverse lucruri. Dacă ai observat, am eliminat o linie de cod irelevantă. Distrează-te.

BarryOvb BarryOvb
27 nov. 2020 12:25:40