Cum obțin URL-ul categoriei din get_the_category?
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(); ?>
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(); ?>

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.

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?

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.
