Нужно отобразить по одной записи из каждой категории
-
Здравствуйте!
Вопрос в заголовке.
Решить вопрос думаю с помощью какого-то хитрого цикла, но проблема в том, что плохо знаю PHP.
Надеюсь на помощь со стороны знатоков.
-
Допустим, что записи присвоено три категории, одна из которых дочерняя от четвертой. Теперь читаем вопрос в заголовке.
Нужно отобразить по одной записи из каждой категории
где отобразить?
Рыба:
foreach(get_categories() as $category) { query_posts('posts_per_page=1&cat='.$category->cat_ID); while (have_posts()){ the_pots(); the_category(); the_title(); the_excerpt(); } }тогда уха, the pot = котелок )
Допустим, что записи присвоено три категории, одна из которых дочерняя от четвертой.
Допустим, именно в Моём случае такого не будет.
Вообще-то, Я использую рубрики как семейства шрифтов, а сами шрифты выкладываю по одному в записи (так как встраиваю их на основе заголовка, PHP-хитрость со ссылками, именами файлов). И, если честно, ощущаю, что что-то делаю неправильно. Может быть, лучше использовать пользовательские таксономии?
Юрий, Ваша «рыба» сработала как надо, благодарю!
Сразу же следующий вопрос: как исключить теперь из этого цикла категорию «без рубрики»?Ответ тут http://codex.wordpress.org/Function_Reference/get_categories
get_categories(‘exclude=1’)
Да, получилось! Благодарю!
Сделал так:foreach(get_categories('exclude=1') as $category) { echo '<article class="hentry">'; query_posts('posts_per_page=1&cat='.$category->cat_ID); while (have_posts()) { the_category(); } query_posts('posts_per_page=5&cat='.$category->cat_ID); while (have_posts()) { the_post(); $font = get_the_title(); $font = str_replace(' ', '-', $font); $wpurl = get_bloginfo('wpurl'); echo "<style> @font-face { font-family: '$font'; src: url('$wpurl/wp-content/uploads/$font.ttf') format('truetype'); font-weight: normal; font-style: normal; } </style>" ?> <p style="font-family: <?php echo $font ?>"><?php the_title(); ?></p> <?php } echo '</article>'; }Чтобы было имя семейства шрифтов (название категории), а под ним — все шрифты семейства (записи).
Но сервер не может обработать почему-то этот скрипт 🙁 ругается:
Fatal error: Maximum execution time of 12 seconds exceeded in /users/shitfonts/www/wordpress/wp-includes/taxonomy.php on line 159
Без двух циклов работает, но не так, как надо — получается над каждой записью заголовок категории, а надо не так.Пришлось пока скрыть лишние заголовки категорий с помощью css:
.hentry ul.post-categories { display: none; } .hentry ul.post-categories:first-of-type { display: block; }Но так нельзя ведь, это криво.
Maximum execution time of 12 seconds exceeded in
Жадный хостер у вас :)) Возвращайте деньги и берите нормального..
можно попробовать сделать все в один SQL с помощью оператора GROUP BY
установить группировку по категориям, но задача не из легкихЖадный хостер у вас :)) Возвращайте деньги и берите нормального..
Бесплатный (: хотя, 12 секунд для выполнения скрипта — не многовато ли?
можно попробовать сделать все в один SQL с помощью оператора GROUP BY
установить группировку по категориям, но задача не из легкихмда уж, с этим Я точно не справлюсь 🙁
не многовато ли?
Если было бы многовато, то таких ошибок не получали тогда, может ему 13 секунд как раз было бы..:)
Тема «Нужно отобразить по одной записи из каждой категории» закрыта для новых ответов.