#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
}