WP Как отобразить поле со списком всех назначенных должностей данной категории в панели администратора категории?

#php #wordpress

Вопрос:

Пожалуйста, скажите мне, как отобразить список сообщений, которым назначена одна и та же категория, в административной части WordPress пользовательской категории? Я использовал этот код, но он работает неправильно

 
// Show posts for some vendor
add_action('admin_init', 'vendors_custom_fields', 1);
function vendors_custom_fields() {
    add_action('vendors_edit_form_fields', 'category_custom_fields_form');
}

function category_custom_fields_form($tag) {?>

    <tr class="form-field">
        <th scope="row">Companies with current manufacturer:</th>
        <td>
            <?php
            $t_id = $tag->term_id;
            $cat_meta = get_option("category_$t_id");
            
            
            $args = array(
                'cat' => $t_id,  
            );

            $query = new WP_Query( $args );
            if ( $query->have_posts() ) : ?>

            <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                    <p><?php echo get_the_title() ?></p>
                <?php endwhile; ?>
                <?php wp_reset_postdata(); ?>

            <?php else : ?>
                <p><?php esc_html_e( 'This manufacturer has no designated companies' ); ?></p>
            <?php endif; ?>
        </td>
    </tr>
    <?php
}

 

Ответ №1:

Правильный ответ

 // Show posts for some vendor
add_action('admin_init', 'vendors_custom_fields', 1);
function vendors_custom_fields() {
    add_action('vendors_edit_form_fields', 'category_custom_fields_form');
}

function category_custom_fields_form($tag) {?>

    <tr class="form-field">
        <th scope="row">Companies with current manufacturer:</th>
        <td>
            <?php
            $t_id = $tag->term_id;
            $cat_meta = get_option("category_$t_id");
            
            
            $args = [
                'tax_query' => [
                    [
                        'taxonomy' => $tag->taxonomy,
                        'terms' => $t_id,
                    ],
                ],
            ];

            $query = new WP_Query( $args );
            if ( $query->have_posts() ) : ?>

            <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                    <span><?php echo get_the_title() ?></span><span> | </span>
                <?php endwhile; ?>
                <?php wp_reset_postdata(); ?>

            <?php else : ?>
                <p><?php esc_html_e( 'This manufacturer has no designated companies' ); ?></p>
            <?php endif; ?>
        </td>
    </tr>
    <?php
}