Articles
Hvordan kan jeg vise kategorienavnet i det enkelte indlæg, når jeg bruger WP Blog og Widget?
On februar 16, 2021 by adminJeg bruger den gratis version af WP Blog og Widget plugin til min blog. Det fungerer perfekt.
Mit problem er, at jeg skal vise det aktuelle postkategorinavn på min enkelt side. Så jeg prøvede nedenstående kode på en single.php-side for at kontrollere kategorienavnet.
$cat = get_the_category(); print_r($cat);
men jeg får ikke kategorienavnet. Jeg får et tomt array.
Array ( )
Hvordan kan jeg løse dette 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();
Kommentarer
Svar
Du kan bare bare sætte denne kode i din singl. php
foreach((get_the_category()) as $category) { echo $category->cat_name . " "; }
Kommentarer
- Tak for svaret, men jeg får kun Ikke tildelt
- så du har tildelt kategorien?
- Ja, jeg har kategori, og jeg har allerede tildelt.
- satte du koden inde i while-sløjfen?
- Ja, jeg tilføjede glide mens (have_posts ()): Kontroller min kode. Jeg opdaterede i spørgsmålet.
get_the_category()
får udtryk fracategory
taksonomi. Det plugin, du linkede, opretter en brugerdefineret posttype, så er du er det sikkert, at ' ikke også skaber en separat taksonomi for ' blogkategorier '? dit indlæg har brugerdefinerede taksonomibetingelser, du skal brugeget_the_terms()
, ikkeget_the_category()
.get_the_terms()
, skal du angive taksonominavnet, som jeg ikke ' ved det ikke. Tjek URLen til redigeringsskærmen for disse kategorier. Det skal indeholde taxonomienavnet.