Articles
Cum pot afișa numele categoriei într-o singură postare când folosesc WP Blog și Widget?
On februarie 16, 2021 by adminFolosesc versiunea gratuită a pluginului WP Blog and Widget pentru blogul meu. Funcționează perfect.
Problema mea este că trebuie să afișez numele curent al categoriei de postări pe pagina mea unică. Așa că am încercat codul de mai jos pe o pagină single.php pentru a verifica numele categoriei.
$cat = get_the_category(); print_r($cat);
dar nu primesc numele categoriei. Primesc o matrice goală.
Array ( )
Cum pot remedia această problemă?
Single.php
<?php /** * The template for displaying all single posts * * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post * * @package WordPress * @subpackage Twenty_Nineteen * @since 1.0.0 */ get_header(); ?> <section id="primary" class="content-area"> <main id="main" class="site-main"> <?php /* Start the Loop */ while ( have_posts() ) : the_post(); $cats = array(); foreach (get_the_category($post_id) as $c) { $cat = get_category($c); array_push($cats, $cat->name); } if (sizeOf($cats) > 0) { $post_categories = implode(", ", $cats); } else { $post_categories = "Not Assigned"; } echo $post_categories; get_template_part( "template-parts/content/content", "single" ); if ( is_singular( "attachment" ) ) { // Parent post navigation. the_post_navigation( array( /* translators: %s: parent post link */ "prev_text" => sprintf( __( "<span class="meta-nav">Published in</span><span class="post-title">%s</span>", "twentynineteen" ), "%title" ), ) ); } elseif ( is_singular( "post" ) ) { // Previous/next post navigation. the_post_navigation( array( "next_text" => "<span class="meta-nav" aria-hidden="true">" . __( "Next Post", "twentynineteen" ) . "</span> " . "<span class="screen-reader-text">" . __( "Next post:", "twentynineteen" ) . "</span> <br/>" . "<span class="post-title">%title</span>", "prev_text" => "<span class="meta-nav" aria-hidden="true">" . __( "Previous Post", "twentynineteen" ) . "</span> " . "<span class="screen-reader-text">" . __( "Previous post:", "twentynineteen" ) . "</span> <br/>" . "<span class="post-title">%title</span>", ) ); } // If comments are open or we have at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) { comments_template(); } endwhile; // End of the loop. ?> </main><!-- #main --> </section><!-- #primary --> <?php get_footer();
Comentarii
Răspuns
Puteți pur și simplu să introduceți acest cod în singl. php
foreach((get_the_category()) as $category) { echo $category->cat_name . " "; }
Comentarii
- Vă mulțumim pentru răspuns, dar primesc doar Neatribuit
- deci ați atribuit categoria?
- Da, am categorie și am atribuit deja.
- ați introdus codul în bucla while?
- Da, am adăugat inslide while (have_posts ()): Vă rugăm să verificați codul meu. Am actualizat în întrebare.
get_the_category()
primește termeni din taxonomiacategory
. Pluginul pe care l-ați conectat creează un tip de postare personalizat, la fel și dvs. sigur că ' nu creează și o taxonomie separată pentru ' categoriile de bloguri '? Dacă postarea dvs. are termeni taxonomici personalizați pe care trebuie să îi utilizațiget_the_terms()
, nuget_the_category()
.get_the_terms()
, trebuie să furnizați numele de taxonomie, pe care nu-l dau ' nu știu. Verificați adresa URL a ecranului de editare pentru aceste categorii. Ar trebui să includă numele taxonomiei.