Сайт ссылок

Дата публикации:Сентябрь 23, 2010

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

Основные пункты построения сайта ссылок:

— Каждая запись блога является ссылкой из вашей базы данных.
— Поле заголовка записи будет использоваться для сохранения названия ссылки.
— URL ссылки будет сохраняться в произвольном поле, называемом ‘URL’.
— Ссылки будут разбиты по рубрикам.
— Ссылки будут обладать метками.
— Для описания ссылки будет применяться the_excerpt().

Теперь мы можем начать процесс создания сайта ссылок. Прежде всего создадим произвольное поле, которое назовем ‘URL’ и в котором будем сохранять адреса ссылок. Затем внесем небольшие изменения в основной цикл, расположенный в файле index.php:

<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<?php $CustomField = get_post_custom_values('URL'); if (isset($CustomField[0])) { ?>
<h2><a href="<?php echo get_post_meta($post->ID, URL, true); ?>" rel="bookmark"
title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<div>
<?php the_excerpt(); ?>
</div>
<p>Filed in <?php the_category(', ') ?> <?php the_tags('and tagged ', ',
', ''); ?> <small><?php the_time('F jS, Y') ?></small></p>
<?php } else { ?>
<h2><del><?php the_title(); ?></del></h2>
<div>
<p>Sorry, this link is broken. Please tell an administrator!</p>
</div>
<p>It's broken: <?php edit_post_link('Fix it!', '', ' | '); ?> Filed
in <?php the_category(', ') ?> <?php the_tags('and tagged ', ', ', ''); ?> <small><?php the_time('F
jS, Y') ?></small></p>
<?php } ?>
</div>

Несмотря на то, что основной цикл здесь подвергается изменениям, понять их достаточно просто. Во-первых, мы проверяем, имеется ли в поле ‘URL’ какая-либо строка:

<?php $CustomField = get_post_custom_values('URL'); if (isset($CustomField[0])) { ?>

Если такая строка имеется, то мы выводим соответствующую ссылку в заголовке h2:

<h2><a href="<?php echo get_post_meta($post->ID, URL, true); ?>" rel="bookmark" title="<?php
the_title_attribute(); ?>"><?php the_title(); ?></a></h2>

Никакой проверки на правильность адреса ссылки здесь не имеется. Функция get_post_meta() принимает три параметра — ID записи, название произвольного поля и структура возвращаемого результата — строка или массив (true — строка); с помощью этой функции производится формирование атрибута href ссылки.

Если URL не будет указан, цикл пойдет по ветке else, в результате чего вы получите на экран запись с сообщением о том, что адрес ссылки не был найден. Также в примере добавлена ссылка для быстрого редактирования записи, что позволит оперативно решить проблему. К слову говоря, такая ссылка не помешала бы и при получении верных результатов.

Некоторые мысли о применении сайта

Поскольку сайт ссылок представляет собой довольно простую структуру, не требующую применения какой-либо расширенной функциональности, вполне планомерно может возникнуть вопрос: а стоит ли вообще использовать WordPress для построения сайта ссылок? Благодаря наличию богатых возможностей сортировки и простоте обслуживания сайта, WordPress идеально подходит для решения приведенной задачи. Разработчик всегда может дать возможность пользователям размещать на сайте новые ссылки, что осуществляется либо с помощью плагинов, либо при введении регистрации. Различные сайты могут использовать каналы RSS для получения ссылок из рубрик вашего сайта (в таком случае понадобится дополнительная связь заголовков RSS с соответствующими URL).

Теперь остановимся на том, каким образом можно доработать сайт ссылок. Широкую популярность в последнее время получили специализированные (нишевые) сайты ссылок; такие сайты можно легко создать на базе WordPress с помощью плагинов. Почему бы, к примеру, не разрешить посетителям комментировать ссылки или голосовать за самые интересные из них? Указанное решение позволит значительно оживить сайт. На основе количества комментариев можно строить интересные списки ссылок. Все это лишь детали одного огромного механизма, именуемого WordPress.

Объединение ссылок и традиционного контента

В данном подразделе мы рассмотрим случай, когда заголовок записи будет связываться не с ее фактическим содержанием, а с URL, определенным в произвольном поле. Если же поле URL останется пустым, мы просто выведем содержание записи. Приведенный ниже код позволяет реализовать указанное решение:

<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<?php $CustomField = get_post_custom_values('URL');
if (isset($CustomField[0])) { ?>
<div>
<h2><a href="<?php echo get_post_meta($post->ID, URL, true); ?>" rel="bookmark"
title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<div>
<?php the_excerpt(); ?>
</div>
</div>
<?php } else { ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_
title_attribute(); ?>"><?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> by <?php the_author() ?></small>
<div>
<?php the_content('Read the rest of this entry &raquo;'); ?>
</div>
<p><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_
category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link
('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?></p>
<?php } ?>
</div>

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

Поделиться

2 комментария

  1. Алексей says:

    Хороший блог у вас, полезные материалы. Удачи вам в развитии! Думается у сайта большое будущее. Если есть желание обменяться постовыми — напишите на e-mail, могу предложить разные варианты (в т.ч. без исходящих ссылок отсюда)

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

    Указанная схема больше скорее подходит для интернет-магазина или каталога автозапчастей (когда-то думал о создании такого на wp).

    А вообще с введением дополнительных полей возможности системы очень сильно расширились, теперь я даже не смотрю в сторону jooml-ы и других, и стараюсь реализовывать всё необходимое средствами этой CMS.

    • Architect Of Ruin says:

      Здравствуйте, Алексей! С проблемой мусора можно расправиться кардинально: к примеру, ввести пользовательские роли, чтобы только определенные пользователи могли оставлять свои ссылки, ну и поставить там капчу или что-то еще для отсева роботов. Хотя в данном случае спам все равно может идти от реальных пользователей, но так его хотя бы можно будет почистить быстрее.

      Дополнительные поля — не слишком удобная штука, но работает, а это самое главное :) Спасибо за поддержку)

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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

Предыдущая запись:

Следующая запись: