Articles
Hoe kan ik de categorienaam in het enkele bericht weergeven wanneer ik WP Blog en Widget gebruik?
Geplaatst op februari 16, 2021 door adminIk gebruik de gratis versie van WP Blog en Widget plug-in voor mijn blog. Het werkt perfect.
Mijn probleem is dat ik de huidige postcategorienaam op mijn enkele pagina moet weergeven. Dus probeerde ik onderstaande code op een single.php-pagina om de categorienaam te controleren.
$cat = get_the_category(); print_r($cat);
maar ik krijg de categorienaam niet. Ik krijg een lege array.
Array ( )
Hoe kan ik dit probleem oplossen?
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();
Reacties
Answer
Je kunt deze code gewoon in je singl zetten. php
foreach((get_the_category()) as $category) { echo $category->cat_name . " "; }
Reacties
- Bedankt voor het antwoord, maar ik krijg alleen Niet toegewezen
- dus je hebt de categorie toegewezen?
- Ja, ik heb een categorie en ik heb deze al toegewezen.
- heb je de code in de while-lus geplaatst?
- Ja, ik heb inslide toegevoegd while (have_posts ()): Controleer mijn code. Ik heb de vraag bijgewerkt.
get_the_category()
haalt termen op uit decategory
taxonomie. De plug-in die je hebt gelinkt, maakt een aangepast berichttype, jij ook zeker dat ' s niet ook een aparte taxonomie maakt voor ' blogcategorieën '? je bericht heeft aangepaste taxonomietermen die je moet gebruikenget_the_terms()
, nietget_the_category()
.get_the_terms()
gebruikt, u de taxonomienaam moet opgeven, die ik niet ' weet het niet. Controleer de URL van het bewerkingsscherm voor die categorieën. Het moet de taxonomienaam bevatten.