Главная - Без рубрики - Добавляем картинку в анонс статьи на главной

Добавляем картинку в анонс статьи на главной

По-моему, вчера в своей очередной публикации я предложил вам рассмотреть моё предложение: стоит или нет мне публиковать статьи, посвященные редактированию шаблонов WordPress? Пока комментариев от вас не поступило, но я решил все же попробовать начать 🙂

Итак, с чего начать? Я не преподаватель курса php-программирования, и сам его знаю не в совершенстве, также как и HTML-верстку и свойства стилей CSS. Но. Занимаясь переводом и адаптацией шаблонов WordPress, хочешь или нет, а разбираться в этом необходимо. Я не буду переписывать и копипастить чужие статьи на эту тему, их достаточно много в Сети и большинство из них — чужие мысли, так как авторы даже в комментариях ответить не могут правильно на вопросы своих посетителей. Просто тырят друг у друга и публикуют за свои.

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

Вот вам первый пример и первый вариант такой ситуации.

13 января я опубликовал шаблон под названием Beauty Spa. Вот его картинка:

Там в описании особенностей я написал, что изначально на главной странице в анонсах статей не было картинок, и я их туда добавил. Каким образом? Терпение.

Вчера, просматривая свои папки с шаблонами, которые я готовлю к переводу, наткнулся на еще один похожий шаблон этого же автора, на эту же тему. Завтра я его выложу. А сегодня я уже отредактировал файл index.php и добавил картинку в анонсы. Как? Терпение 🙂

Дело в том, что у автора есть еще шаблон, очень похожий по макетированию, но посвященный другой теме — отдыху и путешествиям. И называется он Beach Evening, что-то типа «вечер на побережье». Я его когда-то переводил и адаптировал для одного своего заказчика. Он лежит у меня в портфолио. Посмотрите на него и вы увидите, что в том шаблоне автор сделал вывод картинок. А в этих двух — нет. Почему — не знаю. Может быть, был в не настроении? 🙂

Что я увидел. Макеты абсолютно одинаковые. Именно макеты вывода анонсов, так как сайдбары выводятся в этих шаблонах немного иначе. То, что внутри страницы между сайдбарами на главной — это работает файл index.php шаблона. Поэтому, что я сделал сначала: открыл файл index.php из шаблона без картинок и такой же файл — из шаблона с картинками. И стал визуально сравнивать. Давайте попробуем вместе:

Вот вам код из файла index.php без картинок:

<div id="content">
<?php include (TEMPLATEPATH . '/side_ad_block.php'); ?> /* подключение файла
<?php if (have_posts()) : ?> /* начало цикла вывода записей
<?php while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?><br />">/* определение записи по ID
<div>
<div>
<div>
<div><?php the_category(', ') ?> /* название рубрики</div>
<div><?php the_time('F jS, Y') ?> /* вывод даты публикации</div>
<div></div>
<div>/* заголовок записи</div>
<?php if(function_exists('the_content_limit')) the_content_limit(800, ""); ?> /* анонс с ограничением символов</div>
<div>
<div></div>
/* вывод количества комментариев к записи
<div><a title="Permanent Link to <?php the_title_attribute(); ?>" href="<?php the_permalink() ?>" rel="bookmark"> /* ссылка на "читать далее"
<img alt="" src="<? bloginfo('template_directory'); ?>/images/more.gif" width="110" height="26" align="absmiddle" /></a> /* картинка где "читать далее"</div>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?> /* конец цикла вывода записей на главной
<?php if ($prev_link || $next_link): ?>

Я вам написал пояснения почти в каждой строке кода, для того, чтобы вам более понятно было. как работает php-файл под названием index.php. Как видите, нет ни одного кусочка кода, отвечающего за вывод картинки. Почему? Я его там действительно нет.

Теперь открываем файл index.php шаблона с картинкой в анонсе. Не буду повторять вам весь код. Он такой же. за исключением: между описанными выше двумя частями кода файла index.php есть вот такой код:

<div>
<?php the_time('M jS, Y') ?>
</div>
<?php $Img = get_post_meta($post->ID, "post_thumb", true); if ($Img != '') { ?>    /* Вот это как раз и вывод картинки с помощью Произвольного поля 'post_thumb'
<div style="height:100px;float:left; padding:1px">
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(__('Permanent Link to %s', ''), the_title_attribute('echo=0')); ?>">
<img src="<?php echo $Img; ?>" alt="<?php the_title_attribute(); ?>" style="padding:0;margin:0;height:100px;width:250px; border:1px solid #999999" />
</a>
</div>
<?php $num=500; } else {
$num=850;
}?>
<div></div>
<div>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
</div>
<?php if(function_exists('the_content_limit')) the_content_limit($num, ""); ?>
</div>
<div>
<div><?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?></div>
<div>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">Keep Reading...</a></div>
</div>
</div></div></div>
<?php endwhile; ?>
<?php endif; ?>
<?php if ($prev_link || $next_link): ?>

Как видите, код очень короткий, а сколько хорошего может вам дать? 🙂 Берем и с использованием научного метода — копировать-тире-вставить, переносим нужный фрагмент в наш файл index.php который без картинки. Не забываем сохранить, и не забываем, что простым блокнотом это делать не надо. Используйте специальные редакторы для работы с PHP-файлами.

Вот в принципе и все. Благодарю. что дочитали до конца. Если понравилось, а возможно, что и не понравилось — напишите в комментариях — надо публиковать такие статьи или ну их к лешему!

Конечно, править надо не на сайте, а на локальном сервере, редактировать файлы в специальном редакторе с поддержкой отключения сигнатуры BOM. И желательно код вывода картинки «одеть» каким-нибудь дивом, в который заложить определенные свойства форматирования.

Как? Об этом в другой раз.


 

http://www.vships.com.ua/employment

О admin

5 комментариев

  1. Алексей

    Редактирование шаблонов — лично для меня такая возможность более актуальна, чем простое созерцание новых тем. Ведь обычно темы меняются редко, мне важнее подстроить под себя уже выбранный и установленный шаблон, устранить разные недостатки и глюки, возникающие при очередном обновлении.
    И ещё интересна тема разных плагинов.
    У меня, например, блог по фотографии, но на эту тему, как ни странно, не так много разных плагинов и шаблонов. И подобрать именно то, что нужно не так оказывается просто.
    Спасибо автору за устранение таких пропусков хоть в некоторой возможной степени! 🙂

  2. Редактирование шаблонов — с недавних пор начало отнимать массу времени, из-за мое

    • Пардон, что-то с клавиатурой. Продолжаю: было бы очень здорово прочесть что-нибудь полезное об изменении рамочек для фото, создания дополнительных сайдбаров и т.д..
      А еще очень часто скачиваю шаблоны со слайдерами, а потом долго и нудно ищу как же все таки выводить эти фотки. В каждом шаблоне произвольные поля выводятся как-то по своему, а те, кто выкладывают шаблоны часто или не отвечают на вопрос или пишут, что у «меня все работает, ничего не знаю».

      • Оля, я и так стараюсь как могу и как умею 🙂 Писать о том, что сам не делал — не хочу, переписывать чужие мысли идеи — тоже… пишу всегда только о том, с чем сталкиваюсь при локализации шаблонов или изготовлении новых. Например. сегодня нашел супер-пупер сайт о ява-скриптах, которые могут просто великолепно улучшить ваши фотки и их демонстрацию на страницах блога… будет время — почитаю, если хватит мозгов — попробую реализовать и затем рассказать вам… сайт на английском, много специализированного узкого в переводе текста 🙂 поэтому что будет все быстро — не обещаю… Ваши пожелания — обязательно учту 🙂

  3. Надежда

    наконец то я попала на сайт, где разьясняют как редактировать Тему. Надеюсь что смогу научиться .

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*