LINUX.ORG.RU

Вывод постов в цикле wordpress с уникальными параметрами

 , ,


0

1

Суть в том, что посты выводятся в виде картинок, а каждая картинка имеет в себе свои css координаты по расположению на странице.

Нужно каким-то образом для каждой из 11 картинок выводить свой style.

Мне подсказали, что можно создать массив со значениями(координатами) и по мере получения постов выводить из него(массива) по очереди значения. А как это реализовать?

Допустим, у нас будет такой массив:

$arrr = array("a","b","c","d");

Может, можно как-то считать обращения к массиву и при каждом обращении выдавать одно значение(следующее, после прошлого выданного)?

Например, обратились к массиву выше - получили «a», обратились ещё раз - получили - «b». И так 11 раз(будет 11 значений в массиве). Подскажите, плиз.

★★★★★

Последнее исправление: th3m3 (всего исправлений: 1)
Ответ на: комментарий от zz

Примерно понял, а как сделать так, что бы каждый раз выводилось следующее значение? С учётом того, что в самый первый раз должно показаться самое первое, а потом следующее.

Хотелось бы увидеть ответ в виде кода с примером массива из моего поста. Я в php не так силён.

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Я написал такой код(там 5 значений из 11, но не суть):

foreach (array("", "top: 0px; left: 174px;", "top: 151px; left: 87px;", "top: 151px; left: 261px;", "top: 302px; left: 348px;") as $v) {
echo "$v";
}

Вставил в то место, где должны выводится параметры css картинок. У меня они сразу все выводятся =(

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от th3m3

Ну да, ты же их сразу и выводишь. пиши

echo "что должно быть перед картинкой";
echo "$v";
echo "что должно быть после картинки";
Если собираешься дальше программировать на php, это лучше сделать шаблонами.

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от goingUp

Это всё есть. Вот весь кусок кода с циклом wordpress:

<?php
                            $args = array( 'post_type' => 'portfolio', 'posts_per_page' => 11 );
                            $loop = new WP_Query( $args );
                            while ( $loop->have_posts() ) : $loop->the_post();
                            the_post_thumbnail();	
	                        echo '<div class = "rhomb rhomb_img blue" href="#project_';
                            the_ID();
                            echo '" ';
                            echo 'style="';
                            foreach (array("", "top: 0px; left: 174px;", "top: 151px; left: 87px;", "top: 151px; left: 261px;", "top: 302px; left: 348px;") as $v) {
                            echo "$v";
                            }
                            echo '"><span>';
	                        the_title();
	                        echo '<br><a href = "#1"></a></span></div>';
	                        echo '<div id="project_'; 
                            the_ID();
	                        echo '" class="modalDialog">';
	                        echo '<div id="t1">';
	                        echo '<a href="#close" title="Закрыть" class="close">.</a>';
                            the_content();
	                        echo '</div>';
	                        echo '<div id="t2">';
	                        echo get_post_meta($post->ID, 'text-portfolio', true);
	                        echo '</div>';
	                        echo '</div>';
	                    echo '</div>';

                        endwhile; ?>
Выводятся 11 картинок на страницу. И к каждой своё значение(в коде всего 5 значений, когда будет работать впишу все 11) style. Но, в результате выполнения - у каждой картинки выводятся сразу все значения из массива.

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Отлично. Спасибо, заработало. Есть ещё вопрос. Мне так же стили нужно вывести подобным образом в самих thumbnail.

Т.е. в этом месте the_post_thumbnail();

Я создал ещё один массив.

Написал:

the_post_thumbnail($size = 'post-thumbnail', list(,$v2) = each($arr2));

В итоге, отображается что-то вроде: 0=«style=&#039;top: 0px; left: 174px;&#039;» value=«style=&#039;top: 0px; left: 174px;&#039;» 1=«1» key=«1»

Что совсем не то. Понимаю, что я какую-то фигню написал. Но, как правильно прописать, что бы в thumbnail выводилось style=«параметры на каждую картинку свои»?

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от th3m3

Непонятно какие параметры принимает функция the_post_thumbnail. Как-то так
list(,$v2) = each($arr2);
the_post_thumbnail(тут использовать $v2);

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Судя по документации: http://codex.wordpress.org/Post_Thumbnails http://wp-kama.ru/function/the_post_thumbnail

Она может принимать значения размера выводимой картинки, а так же может использовать массив для дополнительных атрибутов к картинке.

Вот, такой пример:

<?php the_post_thumbnail('thumbnail', array('class' => 'alignleft')); ?>

Может есть вариант использовать мой массив в ней, но с какими-то дополнительными аргументами, что бы к каждой картинке присваивался своё свойство style из массива?

th3m3 ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Оу. Я подобное пробовал, но немного не так. Значит я был близок к решению. Спасибо, теперь всё заработало, как надо.

th3m3 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.