похоже, проблема заключалась в том, что вы не можете использовать categories
в качестве имени поля для ACF. Когда вы изменяете имя поля с categories
на любое другое (e.g. stack_categories)
, оно работает как шарм. Я создаю дочернюю тему для проверки кода. Ниже приведены файлы, которые я использовал для проверки кода.
template-home. php
<?php
/*
* Template Name: HomePage
* description: Page template without sidebar
*/
?>
<?php while( have_posts() ) : the_post(); ?>
<?php $terms = get_field( 'stack_categories' ); ?>
<?php if( $terms ): ?>
<?php foreach( $terms as $term ): ?>
<h2><?php echo esc_html( $term->name ); ?></h2>
<p><?php echo esc_html( $term->description ); ?></p>
<a href="<?php echo esc_url( get_term_link( $term ) ); ?>">
Category Name <?php echo esc_html( $term->name ); ?>
</a>
<?php endforeach; ?>
<?php endif; ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
acf. json
[
{
"key": "group_5e9eaa5c9d50c",
"title": "Category Section",
"fields": [
{
"key": "field_5e9eaa6ad3c10",
"label": "Categories",
"name": "stack_categories",
"type": "taxonomy",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"taxonomy": "category",
"field_type": "checkbox",
"add_term": 1,
"save_terms": 0,
"load_terms": 0,
"return_format": "object",
"multiple": 0,
"allow_null": 0
}
],
"location": [
[
{
"param": "page_template",
"operator": "==",
"value": "template-home.php"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "left",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": ""
}
]