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