Сайт дня (как попасть): Кисти Photoshop
Дорогие друзья, в эфире шестой выпуск рубрики ответов на вопросы по движку блогов WordPress. Вы можете почитать другие материалы рубрики WordPress на Shakin.ru. Вы можете задавать Ваши вопросы в комментариях, и я постараюсь ответить на них в следующем выпуске.
В этом выпуске:
- Как совсем убрать возможность комментирования?
- Как вывести список самых комментируемых постов за последний год?
- Как добавить возможность отправки постов по e-mail?
- Как вывести информацию об авторе на блоге WordPress?
- Как сделать задержку отправки поста в RSS ленту после публикации?
В начале поста я хотел бы еще раз поблагодарить Макса за его скрипт кеша для WordPress, благодаря которому блог Shakin.ru намного быстрее работает и создает гораздо меньшую нагрузку на хостинг, и хостера Fastvps.ru за отличное качество услуг.
Всегда ли нужны комментарии на сайте? Можно ли как-то убрать их?
Я сторонник того, что комментарии нужны не на каждом сайте. К примеру, на своем сайте, на котором я пишу уроки Фотошоп, я вообще отключил возможность комментирования. Дело в том, что в комментариях к каждому уроку постоянно задавали вопросы, и с самого начала я понял, что физически не смогу помогать ответами на каждый вопрос. Тем более, что для общения и обсуждения уроков есть форум по Фотошопу.
В блоге WordPress убрать возможность комментирования можно, если зайти в папку с темой вашего блога и в файле single.php (в ряде тем такого файла нет, и нужно будет открывать index.php) просто удалите этот код:
<?php comments_template(); ?>
Как мне вывести список самых комментируемых постов за последний год?
Это сделать просто. Например, вам нужно вывести этот список в боковой колонке вашего блога. Открываете файл sidebar.php и в нужном месте вставляете такой код:
🔥 Кстати! Я провожу платный курс по продвижению англоязычных сайтов SEO Шаолинь seoshaolin.com. Для читателей блога я делаю хорошую скидку. По прокомоду "блог" тариф Про стоит не 50, а 40 тыс. рублей. Тариф Лайт не 25, а 20 тыс. рублей. Тариф Команда не 75, а 60 тыс. рублей. Пишите мне в Telegram @mikeshakin.<h2>Самое комментируемое в 2009</h2>
<ul>
<?php
$result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2009-01-01' AND '2009-12-31' ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) {
?>
<li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li>
<?php }
}
?>
</ul>
И получите список самых комментируемых материалов за нужный год. Если поменять даты, то можно выводить такой список за любой период.
Сейчас на каждом блоге есть возможность добавлять посты в закладки и социалки. Можно ли сделать так, чтобы пользователи могли отправлять ссылки на понравившиеся им материалы моего сайта по e-mail?
Такую возможность очень просто добавить. В нужном месте файла single.php (или index.php) поместите такой код:
<a href="mailto:?subject=<?php the_title(); ?>&body=<?php the_permalink() ?>" title="Отправить по e-mail">Отправить по e-mail</a>
И пользователи смогут делиться ссылками на ваши посты со своими друзьями по e-mail.
На англоязычных блогах постоянно встречаю, что в конце поста выводится информация об авторе. Как такое сделать? И если авторов на блоге несколько?
Публикация информации об авторе будет особенна полезна тем блогам, у которых материалы пишут несколько авторов. Сама информация о каждом авторе заполняется ими в своем профиле в админке WordPress. Далее открываем файл single.php (или index.php) и в конце поста вставляем такой код:
<div id="author-info">
<div id="author-image">
<a href="<?php the_author_meta('user_url'); ?>"><?php echo get_avatar( get_the_author_meta('user_email'), '80', '' ); ?></a>
</div>
<div id="author-bio">
<h4>Written by <?php the_author_link(); ?></h4>
<p><?php the_author_meta('description'); ?></p>
</div>
</div><!--Author Info-->
Затем оформим внешний вид блока об авторе в файле style.css:
#main div#author-info {
background: #eaeaec; padding: 10px; margin: 0 0 15px 0;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
overflow: auto;
}
#main div#author-info div#author-image {
float: left; margin: 0 10px 5px 0; border: 5px solid #DCDCE1;
}
Также можно вывести другие материалы этого автора с помощью такого кода:
<p>Другие материалы, написанные <?php the_author_posts_link(); ?> </p>
Постоянно сталкиваюсь с необходимостью исправить или дополнить пост, когда он уже опубликован. Можно ли сделать задержку, чтобы он не сразу транслировался в RSS ленту и я могла его исправить?
Есть волшебное решение, которое позволит задержать попадание опубликованного поста в RSS ленту на 5 минут. Этого времени достаточно, чтобы при необходимости подправить пост. Открываем файл functions.php и помещаем в него такой код:
/**
* puplish the content in the feed later
* $where ist default-var in WordPress (wp-includes/query.php)
* This function an a SQL-syntax
*/
function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');
// value for wait; + device
$wait = '5'; // integer
// https://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
Если нужно установить более долгую задержку, просто поменяйте количество минут '5'.
Источник этого волшебного решения
Желаю вам успешной работы с вашими блогами!
Постовой: Современные и надежные ноутбуки в одессе очень удобны в работе и дома.
Хотите купить недвижимость в казахстане? Это перспективное вложение в будущее.
Лучший отдых в карпатах - это санаторий "Шешоры", где можно отдохнуть от городской суеты.
Десерт сегодня - поединок сумоистов, ребята очень здоровые, 171 и 180 кг :
Подпишитесь на рассылку блога с полезными материалами по SEO

Меня зовут Михаил Шакин, я автор этого блога, занимаюсь SEO с 2006 года. Вы можете заказать у меня
Отличная статья Михаил! Поставил себе "самое комментируемое в 2009" в sidebar - прекрасно работает!
Спасибо Михаил. Тоже интересовало как поставить в футере инфу об авторе. Еще вопрос (на будущие "Вопросы и ответы...": на многих буржунетовских сайтах видны значки/иконки рсс-фидов справа или слева, они как бы "крепятся" к краям окон браузеров. Хотелось бы такую же... 🙂
Про задержку RSS в некоторых случаях очень полезно, но я предпочитаю все таки хорошо проверять пост (статью) в предпросмотре и, убедившись, что ошибок нет, нажимаю "опубликовать" 🙂
>> Открываем файл functions.php и помещаем в него такой код
Раньше тоже так делал, но потом понял, что либо придется обновлять вордпресс "руками" - править ошибки в коде, либо от такого способа следует отказаться и искать/писать плагины.
В настоящее время код WP не трогаю, пока все нужные мне задачи нормально решаются. И обновляется он у меня одним кликом в админке, как разработчики и задумывали.
Быть может слегка не в тему, но черный сумоист еще и актер, он снимался в комедии "Большой Стен", в роли пасивного гомосексуалиста -)
> <?php comments_template(); ?>
Стоит тогда убрать или переименовать wp-comments.php из корня сайта. А то спамеры отправляют туда POST запросы не проверяя включены ли комменты 😉
Спасибо за пост.
Иногда приходилось править и я даже не задумывался насчет задержки отправки RSS.
А это сильно отрицательно влияет (если поправить пост после отправки в RSS)?
Возможно я ошибаюсь, но комментарии, вроде, можно отключать из админки ВП, я себе оставил модерацию перед публикацией комментов, иногда интересно почитать что пишут))
Прикольное видео на десерт. Случайно не этот негр вам машину продавал? =)
Михаил, хорошая серия статей)) Подскажи если знаешь каким образом можно не отдавать какую либо статью в RSS?
"Есть волшебное решение, которое позволит задержать попадание опубликованного поста в RSS ленту на 5 минут. Этого времени достаточно, чтобы при необходимости подправить пост. Открываем файл functions.php и помещаем в него такой код:"
Код указанный вставить полностью нужно или то что омечено синим цветом изменить?
Если полностью код вставить то что сделать тем кодом который уже есть в файле?
Вставить код снизу или сверху того того текста который по умолчанию стоит в functions.php
Серг, то, что уже есть в файле functions.php - ни в коем случае нельзя удалять, на всякий случай сначала сохраните копию. Указанный код нужно вставить в конце файла перед "?>".
На счёт запрета комментирования: Комментарий на WordPress блог можно оставить не имея даже формы для оставления комментария 🙂 Интересно как?
Спасибо за скрипты!))) установлю некоторые из них на свой блог....