WordPress как на ладони
rgbcode is looking for WordPress developers.

Вывод всех TERMs из постов на странице архива

Есть страницы CATEGORY - на ней выводятся записи (50-100 на страницу), нужно из этих записей собрать все теги и кастомные теги , ну и потом вывести.

Подскажите есть ли готовый код, или как обычно ручками и foreach?

Решение оказалось максимально простым

/* SHOW ALL TERMS FOR SELECT POSTS (Kolshix)
 * array_slice( $var, 0 , 20  ) - ids limits
 * wp_list_pluck( $var , 'ID' ) - get only IDs from array
 * shuffle( $var ) - order random , default 'name' latin then cyrillic
 */
global $wp_query;
$arch_post_ids = array_slice( wp_list_pluck( $wp_query->posts, 'ID' ), 0, 20);

$pax_terms =  wp_get_object_terms( $arch_post_ids ,  array( 'paxtype', 'pax_actors_characters' , 'post_tag', 'pax_company' , 'pax_material')  ) ;
// shuffle( $pax_terms ) ;
foreach ( $pax_terms as $paxterm) {
	echo '<a class="arch-tag" href="'. get_term_link( $paxterm->term_id )  .'" rel="category tag"><span class="in-line">'. $paxterm->name .'</span></a> ';
}
0
kolshix
5 месяцев назад 779
  • 0
    qwert555154 naytikurs.ru

    Если записей много, то запрос не самый простой, вот тут пример есть как сделать, чтобы работало более менее быстро https://searchengines.guru/ru/forum/1011381#comment_15971420

    kolshix 5 месяцев назад

    Для меня чересчур круто, туговато с базой работать .
    решил пока что, так на минималках

    if ( is_user_logged_in() && current_user_can('manage_options')  ) { 
    	?>
    	<style>
    		.arch-tag:hover, .arch-tag:focus{
    				background: #6f5cbb;
    				color: white;
    				padding: 4px 5px;
    		}
    		.arch-tag{
    			font-size: 20px;
    			background: #f3c834;
    			color: white;
    			border-radius: 5px;
    			padding: 1px 5px;
    			 color: #c2382b;
    		}
    
    	</style>
    	<?php
    	global $wp_query;
    	$arch_post_ids = array_slice( wp_list_pluck( $wp_query->posts, 'ID' ), 0, 10);                          
    
    	$pax_actors_characters = wp_get_object_terms( $arch_post_ids , 'pax_actors_characters' );
    
    	foreach ( $pax_actors_characters as $character) {
    		echo '<a class="arch-tag" href="'. get_term_link( $character->term_id )  .'" rel="category tag">'. $character->name .'</a> ';
    	}
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация