Поддержка Проблемы и решения Постоформление картинок поста (WP как CMS)

  • привет.

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

    можно ли как-то управлять положением прикрепленных изображений?

    например, 2-3 картинки, которые прикрепил пользователь, центрируются, под ними выводится вензель (линия, элемент дизайна и т.п.), а уже потом текст.

Просмотр 15 ответов — с 1 по 15 (всего 20)
  • Автор shin

    (@sorashin)

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

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Помимо миниатюры, можно использовать встроенную галерею записи — получить изображения в виде массива (пример кода) и оформить вывод согласно требованиям.

    На одном сайте я тоже пришел к предложенному Сергеем коду, только получал не миниатюры, а URL полных изображений, а дальше их ресайзил с помощью timthumb. Принцип как при использовании произвольных полей.

    Автор shin

    (@sorashin)

    ! я не знал, что можно картинки загружать, но не вставлять. а это именно то, что мне нужно! первым моим решением было именно вставка картинок, удаление их из поста и вывод в другом месте. и мне тоже показалось это не изящным)

    и точно также мне потребуется timthumb. спасибо вам обоим огромное!

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

    <img src="timthumb.php?src=/images/default.jpg&h=150&w=150&zc=1" alt="">

    Я не знаю насколько это правильно, но я поступил вот так:

    <?php
    		$images = get_children(array('post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC'));
    		if ( empty($images) ) {
    
    		} else {
    			foreach ( $images as $attachment_id => $attachment ) {
    			echo '<li>';
    			echo '<img class="slider_item"  src="'.get_bloginfo('template_url').'/scripts/timthumb.php?src='.wp_get_attachment_url($attachment_id, 'full').'&h=75&w=50&zc=1" alt="'.$attachment->post_title.'"/>';
                echo '</li>';
    		}
    		}
    		?>
    Автор shin

    (@sorashin)

    спасибо.

    а timthumb на локальном wordpress’е (денвер) будет работать?

    да, у меня работает)

    Автор shin

    (@sorashin)

    отлично, спасибо.

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

    Автор shin

    (@sorashin)

    да, для поста все отлично работает. теперь у меня вопрос, как это оптимально использоваться для вывода одной картинки. для этого ведь не нужно перебирать весь массив, так? правильно ли я понимаю, что в этом случае мне нужно использовать for вместо foreach? мне кажется, что нет)

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

    Меня тоже интересует этот вопрос, я делал так же как и в предыдущем варианте, а вот как правильно получить 1ю картинку, и например ту которая первая установлена 'orderby' => 'menu_order' . Тогда бы получилась замена стандартным превьюшкам

    Автор shin

    (@sorashin)

    надеюсь, что кто-нибудь откликнется еще.

    в идеале бы так: с главной брать только первую картинку из поста. а при заходе в пост выводить со второй (на случай, если первую надо хитро кадрировать под дизайн).

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

    Модератор Yuri

    (@yube)

    А как насчет добавить параметр «numberposts»=>1 ? 😉

    Автор shin

    (@sorashin)

    простите за глупость, но к чему этот параметр добавлять? и как бы со вторым вопросом — выводить картинки, начиная со второй?

    Модератор Yuri

    (@yube)

    К запросу
    $images = get_children(array('post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC'));
    чтобы получить только один аттач, а не все.

    Начиная со второй — параметр ‘offset’.

    Матчасть:
    Function Reference/get children
    Template Tags/get posts

    Юрий, а как сделать сброс этого запроса,

    «numberposts»=>1

    я догадался поставить, но вот когда идет 2а подрядят таких запроса (в записи, сначала вывести одну картинку а потом вывести все картинки), то во втором как и в первом независимо от параметра numberposts выдается 1 картинка.

Просмотр 15 ответов — с 1 по 15 (всего 20)
  • Тема «Постоформление картинок поста (WP как CMS)» закрыта для новых ответов.