Articles
Wie kann ich den Kategorienamen in einem einzelnen Beitrag anzeigen, wenn ich WP Blog und Widget verwende?
On Februar 16, 2021 by adminIch verwende die kostenlose Version des Plugins WP Blog und Widget für mein Blog. Es funktioniert einwandfrei.
Mein Problem ist, dass ich den aktuellen Namen der Post-Kategorie auf meiner einzelnen Seite anzeigen muss. Deshalb habe ich versucht, den folgenden Code auf einer einzelnen.php-Seite zu überprüfen, um den Kategorienamen zu überprüfen.
$cat = get_the_category(); print_r($cat);
, aber ich erhalte nicht den Kategorienamen. Ich erhalte ein leeres Array.
Array ( )
Wie kann ich dieses Problem beheben?
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();
Kommentare
- Wo zeigen Sie den Kategorienamen an? In der Post-Schleife oder außerhalb der Post-Schleife, wie beim Widget?
- @AtifAqeel, ich muss den Kategorienamen auf meiner single.php-Seite anzeigen.
-
get_the_category()
ruft Begriffe aus der Taxonomiecategory
ab. Das von Ihnen verknüpfte Plugin erstellt einen benutzerdefinierten Beitragstyp, genau wie Sie sicher, dass ' nicht auch eine separate Taxonomie für ' Blog-Kategorien ' erstellt? Ihr Beitrag enthält benutzerdefinierte Taxonomiebegriffe, die Sie verwenden müssen, umget_the_terms()
, nichtget_the_category()
. - @JacobPeattie, lassen Sie mich Versuchen Sie Ihren obigen Kommentar.
- @NarenVerma Denken Sie daran, dass Sie bei Verwendung von
get_the_terms()
den Taxonomienamen angeben müssen, den ich nicht weiß nicht. Überprüfen Sie die URL des Bearbeitungsbildschirms für diese Kategorien. Es sollte den Taxonomienamen enthalten.
Antwort
Sie können diesen Code einfach in Ihr Singl einfügen. php
foreach((get_the_category()) as $category) { echo $category->cat_name . " "; }
Kommentare
- Danke für die Antwort, aber ich erhalte nur Nicht zugewiesen
- Sie haben also die Kategorie zugewiesen?
- Ja, ich habe eine Kategorie und ich habe sie bereits zugewiesen.
- Haben Sie den Code in die while-Schleife eingefügt?
- Ja, ich habe inslide hinzugefügt, während (have_posts ()): Bitte überprüfen Sie meinen Code. Ich habe die Frage aktualisiert.
Schreibe einen Kommentar