Home Forums General Issues Trying to display a category (taxonomy) field in the fronted


Trying to display a category (taxonomy) field in the fronted

  • Trying to display a category (taxonomy) field added to a custom post, for it’s single page. My code in the cntent template goes like this, but it return nothing.

    <li>Plan type : <?php the_field('plan_type'); ?><li>

    The field is configured like this (see pic attached).

  • If you are trying to show a field added to a term then you must supply the term or a term “post id”

    the_field('plan_type', $term); // in this case a term object


    the_field('plan_type', 'term_'.$term_id);
  • <?php the_field(‘plan_type’, ‘term_’.$term_id); ?> and <?php the_field(‘plan_type’, $term); ?> dont generate a content.

    I think I don’t get it. Sorry 😉

    Do I have to replace $term or $term_id by something else?

    To make it clearer, plan_type is a field in ACF (a taxonomy field – i choosed category). Th field is inthe group field for the CPT. So ca category have to be choosed (different for every post).

    I am trying to make the unique post (single post) template, showing the category choosed on the post unique page.

  • I thought you were trying to show a field on a term, not show the term in a tax field.

    The documentation for a taxonomy field is here and it gives examples on to use this field.

    A taxonomy field is one of those fields that do not work well with the_field()

  • Thanks again.

    Tried the 3 ways.. Doesn’t work. Echo nothing. 🙁

    Here is code i tried for the first option (single object). I also attached a screenshot for the fiel settings in ACF.

    $term = get_field(‘plan_type’);
    if( $term ): ?>
    <h2><?php echo esc_html( $term->name ); ?></h2>
    <p><?php echo esc_html( $term->description ); ?></p>
    <?php endif; ?>

  • Where exactly are you trying to do this?

    What template?

    Are you in “The Loop”?

  • I am in trying to call the category in the template part file:

    The template part is then called in a single page file I created for showing only one “plan” in the frontend:

    Every fields are appearing in a single plan page on the frontend, appart the category taxonomy selected for the plan in question (plan_type field in ACF).

    Template part code:

     * Template part: Plan
    if ( !function_exists( 'get_field' ) ) 
    	<h1><?php the_title(); ?> plan</h1>	   
                  <li>Host : <?php 
                $companyname = get_field('companyname');
                echo get_the_title( $companyname->ID );
                <li>Plan type : <?php the_field('plan_type'); ?></li>
    	       <li>Monthly price : $ <?php the_field('monthly_price'); ?></li>
                  <li><?php the_field('company_location'); ?></li>
                <p><?php the_content(); ?></p>
    	</div><!-- .entry-content -->
    </article><!-- #post-## -->

    Single page code (I know it’s not the right way to call the plan_type):

    get_header(); ?>
    	<section id="primary" class="content-area col-sm-12 col-lg-8">
    		<div id="main" class="site-main" role="main">
    		while ( have_posts() ) : the_post();
    			get_template_part( 'template-parts/content-plan');
    			// If comments are open or we have at least one comment, load up the comment template.
    			if ( comments_open() || get_comments_number() ) :
    		endwhile; // End of the loop.
    		</div><!-- #main -->
    	</section><!-- #primary -->
  • As I said a while back, you cannot use the_field() with a taxonomy field.

    <li>Plan type : <?php the_field('plan_type'); ?></li>

    and the documentation explains how to use a taxonomy field based on the return value you have set.

    What is your return value and what information about the term are you trying to show?

  • Just trying to show the taxonomy category name that is selected in the custom post entry.

    $plan_types = get_field('plan_type');
    if ($plan_types) {
      ?><li>Plan type : <?php echo $plan_types[0]->name; ?></li><?php 
Viewing 10 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic.