У меня вордпресс движок. Нашёл одно решение, но выводит почему то первую строку в 4 картинок и лишь остальные строки по 3.
Вот код мой:
<?php if($npdv_options['enablePhoto'] == 1) { ?>
<h2>Фотогаллерея</h2>
<table><tr><?php
$gabquery = new WP_Query();$gabquery->query('showposts='.$npdv_options["PhotoPostCount"].''); // получаем данные
define('Q_EL_STRING', 3); // Количество элементов в строке
$data = $gabquery; // Получили данные. Откуда угодно.
while ($gabquery->have_posts()) : $gabquery->the_post(); ?> // Пошёл цикл вывода данных
<td style="padding:5px;">
<img src="тут переменная">
</td>
/* Начинается код который я нашёл для вставки </tr><tr> */
<?php
$counter++; // Позиция очередного элемента в строке
if ($counter > Q_EL_STRING) {
/* Вышли за предел строки */
echo '</tr><tr>'; // Перешли на новую строку
$counter = '1'; // Элемент теперь первый в новой строке
}
?>
<?php endwhile; wp_reset_query(); ?>
<?php } ?>
</tr></table>
Подскажите что не так?
Почему первая строка выводит 4 фоток а последующие 3
Вот оригинальный код для вывода переменной </tr><tr>:
define('Q_EL_STRING', 3); // Количество элементов в строке
$data = Array('Раз', 'Два', 'Три', 'Четыре', 'Пять', 'Шесть', 'Семь'); // Получили данные. Откуда угодно.
/* Выводим */
$counter = 0;
foreach ($data as $element) {
$counter++; // Позиция очередного элемента в строке
if ($counter > Q_EL_STRING) {
/* Вышли за предел строки */
print '<br />'; // Перешли на новую строку
$counter = 1; // Элемент теперь первый в новой строке
}
print $element.' '; // Вывели элемент
}
Спустя 11 минут, 24 секунды (23.10.2011 - 21:05) T1grOK написал(а):
У тебя переменная $counter объявляется со значением 0, а надо со значением 1.
Спустя 29 минут, 4 секунды (23.10.2011 - 21:34) Merlak написал(а):
T1grOK, дай я тебя расцелую!!)))Спасибо!!)
Спустя 11 минут, 21 секунда (23.10.2011 - 21:45) Winston написал(а):
Цитата (Merlak @ 23.10.2011 - 20:54) |
Вот оригинальный код для вывода переменной </tr><tr>: |
Твой код можно сократить до:
<?php
define('Q_EL_STRING', 3); // Количество элементов в строке
$data = Array('Раз', 'Два', 'Три', 'Четыре', 'Пять', 'Шесть', 'Семь'); // Получили данные. Откуда угодно.
/* Выводим */
$counter = 0;
foreach ($data as $element) {
echo (++$counter % Q_EL_STRING == 0) ? $element . '<br/>' : $element . ' ';
}
Спустя 3 дня, 21 час, 59 минут, 6 секунд (27.10.2011 - 19:45) Merlak написал(а):
Спасибо Winston!))