Невозможно получить выбранные категории - ACF - PullRequest
0 голосов
/ 21 апреля 2020

Это может быть мелочь, но я новичок в ACF. Я хочу отображать только выбранные категории WordPress из полей ACF. Поэтому я создал поля ACF и выбрал категории, которые я хочу отобразить. Это помогло мне в некоторой степени выполнить мое требование (https://www.advancedcustomfields.com/resources/taxonomy/). Но он выводит формулировку «Название категории», которая уже жестко закодирована. Я хочу отображать изображения и заголовки вместо жесткого кода.

<?php 
$terms = get_field('categories');
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; ?>

Я также пытался использовать get_field. Но они не помогли мне.

Вот экспорт полей ACF.

[
    {
        "key": "group_5e9eaa5c9d50c",
        "title": "Category Section",
        "fields": [
            {
                "key": "field_5e9eaa6ad3c10",
                "label": "Categories",
                "name": "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": "id",
                "multiple": 0,
                "allow_null": 0
            }
        ],
        "location": [
            [
                {
                    "param": "page_template",
                    "operator": "==",
                    "value": "page-templates\/home-page.php"
                }
            ]
        ],
        "menu_order": 0,
        "position": "normal",
        "style": "default",
        "label_placement": "top",
        "instruction_placement": "label",
        "hide_on_screen": "",
        "active": true,
        "description": ""
    }
]

Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

похоже, проблема заключалась в том, что вы не можете использовать 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": ""
    }
]
0 голосов
/ 21 апреля 2020

Предполагая, что ваше поле имеет название «категории», вы можете попробовать это ... Обратите внимание, что вы установили свое изображение, которое хотите отображать в качестве избранного изображения.

<?php 
$terms = get_field('categories');
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 ) ); ?>">
<?php
echo the_post_thumbnail($term);
echo the_title($term);
echo esc_html( $term->name ); ?></a>
<?php endforeach; ?>
<?php endif; ?>
...