Исходные условия для пользовательских типов сообщений

Я смог отбросить все термины, принадлежащие пользовательской таксономии, используя следующий код:

$args = array('post_type' => 'my_post_type','number' => '999'); $terms = get_terms( 'my_taxo', [ 'hide_empty' => true, 'orderby' => 'wpse_last_word', ] , $args ); foreach ( $terms as $term ) { echo '' . $term->name . ''; } 

Этот код предоставляет результаты, которые я хочу получить на моем localhost (xampp). В принципе, он выводит все термины, назначенные на конкретный пост. Но когда я загружаю код на живой сервер, код больше не работает так, как ожидалось. Вместо этого он отображает все термины, не фильтруя их. Я даже обновляю версию PHP на совпадении моего сервера на локальном сервере; до сих пор не повезло.

Кто-нибудь может указать на мой код.

Solutions Collecting From Web of "Исходные условия для пользовательских типов сообщений"

Ваш код неправильный. Я не знаю, как он работает в вашем локальном хосте. причинно-

  1. Вы вызываете get_terms() с 3 параметрами, которые фактически принимают 2 параметра. Последний лишний.
  2. А во-вторых get_terms() возвращает все термины таксономии, а не термины, связанные с сообщением.

Для получения условий, связанных с сообщением, вы можете использовать wp_get_post_terms .

Использование wp_get_post_terms внутри wp_get_post_terms WordPress,

Для каждого сообщения вы получите условия сообщения, вызвав wp_get_post_terms

 //Do something if a specific array value exists within a post $term_list = wp_get_post_terms($post->ID, 'your_taxonomy', array("fields" => "all")); // Then you can run a foreach loop to show the taxonomy terms infront. foreach($term_list as $term_single) { echo $term_single->slug; //do something here } 

И за пределами цикла –

 // Do something if a specific array value exists within a post // And somehow you need to get the post ID to pas it to below. $term_list = wp_get_post_terms($post_id, 'your_taxonomy', array("fields" => "all")); // Then you can run a foreach loop to show the taxonomy terms infront. foreach($term_list as $term_single) { echo $term_single->slug; //do something here } 

Надеюсь, это поможет.

После нескольких исследований, которые я нашел ниже, сценарий выполняет работу, благодаря @the_dramatist, указывая мне на правильное направление, я использовал глобальную почту, но не правильно

 глобальные $ post;
 $ loop = new WP_Query (array ('post_type' => 'myCPT', 'posts_per_page' => -1));
 while ($ loop-> have_posts ()): $ loop-> the_post ();
 $ terms = wp_get_post_terms ($ post-> ID, 'my_taxonomy');                   
 foreach ($ terms as $ term_single) {
 эхо ".  $ Term_single-> слизняк.  '';
 }
 ENDWHILE;

Если кто-то получает пустые результаты после этого, просто удалите категории и заново создайте и примените их.