Articles
Hur kan jag visa kategorinamnet i det enskilda inlägget när jag använder WP Blog och Widget?
On februari 16, 2021 by adminJag använder den gratis versionen av WP Blog och Widget plugin för min blogg. Det fungerar perfekt.
Mitt problem är att jag måste visa det aktuella inläggskategorinamnet på min enskilda sida. Så jag försökte koden nedan på en enda.php-sida för att kontrollera kategorinamnet.
$cat = get_the_category(); print_r($cat);
men jag får inte kategorinamnet. Jag får en tom matris.
Array ( )
Hur kan jag lösa det här problemet?
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();
Kommentarer
Svar
Du kan bara helt enkelt lägga den här koden i din singl. php
foreach((get_the_category()) as $category) { echo $category->cat_name . " "; }
Kommentarer
- Tack för svaret, men jag får bara Ej tilldelad
- så att du har tilldelat kategorin?
- Ja, jag har kategori och jag har redan tilldelat.
- satte du in koden i stundslingan?
- Ja, jag lade till en bild medan (have_posts ()): Kontrollera min kod. Jag uppdaterade i frågan.
get_the_category()
får termer fråncategory
taxonomin. Plugin som du länkade skapar en anpassad inläggstyp, så är du säker på att ' inte också skapar en separat taxonomi för ' bloggkategorier '? ditt inlägg har anpassade taxonomibetingelser du behöver för att användaget_the_terms()
, integet_the_category()
.get_the_terms()
måste du ange taxonominamnet, vilket jag inte ' vet inte. Kontrollera redigeringsskärmens URL för dessa kategorier. Det bör innehålla taxonominamnet.