Как сделать: древовидные комментарии в WordPress 2.7

16 Декабрь 2008

19 Comments

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

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

Проверка открытия файла напрямую, в моем блоге эти строки выглядели вот так:

	if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
		die ('Please do not load this page directly. Thanks!');

Их необходимо заменить на следующие:

if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
	die ('Пожалуйста, не загружайте этот файл напрямую. Спасибо!');

Далее проверяем запись на защиту паролем. У меня строчки которые проверяли закрыты ли комментарии паролем, выглядели вот так:

<?php
    if (!empty($post->post_password)) { // if there's a password
            if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie ?>
	<p class="nocomments">Запись закрыта паролем. Введите пароль для просмотра комментариев.<p>
        <?php return; } }

Эти строки необходимо заменить на следующий код:

if ( post_password_required() ) {
	echo '<p class="nocomments">Запись закрыта паролем Введите пароль для просмотра комментариев.</p>';
	return;
}

Теперь наверное самое сложное в этой процедуре, это замена куска файла, который отвечает непосредственно за вывод списка комментариев. Вот таким он был в старых версиях WordPress, повторюсь, в разных шаблонах этот кусок кода, может быть разным!

<?php if ($comments) : ?>
	<ol class="commentlist">
	<?php foreach ($comments as $comment) : ?>
		<li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">
			<p class="top">	<span><?php comment_date('F jS, Y') ?> в <?php comment_time() ?> <a href="#comment-<?php comment_ID() ?>" title="">#</a><?php edit_comment_link('edit','&nbsp;&nbsp;',''); ?></span><?php comment_author_link() ?></p>
			<div class="body">
			<?php if ($comment->comment_approved == '0') : ?>
			<em>Ваш комментарий ожидает проверки модератором.</em><br />
			<?php endif; ?>
			<?php comment_text() ?>
			</div>
		</li>
	<?php
		/* Changes every other comment to a different class */
		$oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';
	?>
	<?php endforeach; /* end for each comment */ ?>
	</ol>
 <?php else : // this is displayed if there are no comments so far ?>
	<?php if ('open' == $post->comment_status) : ?>
		<!-- If comments are open, but there are no comments. -->
	 <?php else : // comments are closed ?>
		<!-- If comments are closed. -->
		<p class="nocomments">Комментирование закрыто.</p>
	<?php endif; ?>
<?php endif; ?>

В WordPress 2.7, этот кусок намного меньше, т.к. за вывод комментариев, теперь отвечает всего одна функция, однако в этом случае, меняется и вид комментариев которые выводятся и расположение некоторой информации о комментариях, именно для этого я и говорил, сделать резервную копию вашего шаблона, вдруг вам не понравится. Хватит говорить, вот кусок кода для WordPress 2.7 комментариев:

if ( have_comments() ) : ?>
<h4 id="comments"><?php comments_number('Нет комментариев', 'Один комментарий', 'Комментарии % ' );?></h4>
<ul class="commentlist">
	<?php wp_list_comments(); ?></ul>
<div class="navigation">
<div class="alignleft"><?php previous_comments_link() ?></div>
<div class="alignright"><?php next_comments_link() ?></div>
</div>
<?php else : // this is displayed if there are no comments so far ?>
	<?php if ('open' == $post->comment_status) :
		// If comments are open, but there are no comments.
	else : // comments are closed
	endif;
endif;

Теперь если вы сохраните файл comments.php и комментарии на вашем блоге будут нормально отображаться, значит вы на правильном пути, если нет, имеет смысл перечитать и проверить все ли правильно вы поменяли.

Продолжим наше нелегкое дело, для правильной работы древовидных комментариев WordPress 2.7, нам необходимо вызывать Java-скрипт, для этого открываем файл header.php и перед строкой wp_head () вставляем строку:

if ( is_singular() ) wp_enqueue_script( 'comment-reply' );

К форме комментариев, после полей Имя, E-Mail, Сайт, добавляем еще одну функцию, которая необходима для правильной работы комментариев:

<?php comment_id_fields(); ?>

Вся форма комментариев, поля пользователя и поле для ввода текста комментария и кнопка отправки, должна быть заключена в блок

<div id="respond">

, это необходимо, для правильного отображения формы комментирования, когда человек отвечает на чей-то комментарий.

Текст перед формой комментирования «Оставьте комментарий» или «Оставить комментарий» заменяем на функцию:

<?php comment_form_title(); ?>

Прямо под этой строчкой, добавьте еще несколько, которые позволят отказаться от ответа на комментарий:

<div id="cancel-comment-reply">
	<small>< ?php cancel_comment_reply_link() ?></small></div>

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

Я очень надеюсь, что у вас все получилось, если не получилось, обращайтесь, постараюсь помочь.

Если кто-то заметил ошибки в коде или неточности, жду вас в комментариях.

Ссылки по теме: 1,2.

Продолжить чтение...

Проблемы с установкой WordPress 2.7

16 Декабрь 2008

8 Comments

Собственно в очередной раз, рад за Ивана Калинина что он так старательно относится к переводу и поддержке русской версии WordPress.

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

  1. Страницы диалога установки WordPress переведены на русский но написаны в кодировке Windows-1251 в связи с этим имеем нелицеприятную картинку при установке блога.
    Проблема с установкой WordPress 2.7
  2. Я допустим помню, в каком поле, какие данные вводить, поэтому ошибки перевода меня сначала не особо напрягли, что было дальше, совсем неприятно. Я ввел логин, пароль для подключения к базе данных, ввел имя базы данных и нажал создать файл конфигурации wp-config.php, WordPress с радостью сообщил о том, что файл создан и можно приступать к установке. Я нажал на кнопочку, соглашаясь с тем, что можно приступать, и сразу же получил сообщение об ошибке подключения к серверу базы данных. Проблема в данном случае заключалась в содержании файла wp-config.php вместо данных, которые я ввел через форму, файл содержал следующую информацию:
    Проблема установки WordPress 2.7т.е. файл конфигурации создается автоматически, но данные которые введены в форму он не принимает, и в нем остаются данные по умолчанию, с которыми естественно никакой  WordPress работать не будет.
  3. Я решил не рисковать, и не продолжать установку этой версии, а скачал русифицированную версию Lecactus Edition и установил, больше всего времени заняла не установка, а закачка файлов на сервер, все остальное прошло без проблем.

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

Продолжить чтение...

Как обновить WordPress до версии 2.7

13 Декабрь 2008

21 Comments

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

  1. Самое главное, при обновлении блога, сделать резервную копию базы данных и резервную копию файлов блога. Это необходимо для возможности вернуть все назад, если вдруг в процессе обновления что-то пойдет не так.
  2. После того, как вы сделали резервную копию, необходимо скачать новую версию WordPress. Скачать ее можно, на русском языке с официального сайта, или русскую сборку от Ивана Калинина (Lecactus).
  3. Скачанный архив, необходимо распаковать на своем компьютере.
  4. Файлы из архива, загрузите в папку вашего блога на сервере, с заменой существующих файлов.
  5. После того, как все файлы скопированы, посетите панель администрирования вашего блога, возможно вам будет предложено обновить базу данных блога. Просто нажмите на кнопку «Обновить базу данных» и подождите несколько секунд.
  6. Обновление закончено, наслаждайтесь новой версией  WordPress.

Можно ли обновить WordPress с версии меньше 2.6.5, сразу до версии WordPress 2.7?

Если у вас установлена версия WordPress больше чем 2.5 никаких проблем при обновлении до версии WordPress 2.7 возкнинуть не должно. При обновлении с WordPress 2.3 к примеру, лучше заручиться поддержкой специалиста.

Процесс обновления ничем не отличается от вышеописанного.

В моем блоге много плагинов, не пропадут ли они после обновления до WordPress 2.7?

Проблемы с плагинами возникают при переходе на версию WordPress выше 2.5, если она уже установлена у вас, то обновляться до 2.7 можно не бояться. Ознакомьтесь со списком плагинов, которые гарантированно работают с WordPress 2.7.

Запомните главное, после того, как вы начнете работать с WordPress 2.7, можно забыть о сложных процедурах обновления блога, установки плагинов и их обновления. Все это теперь выполняет сам WordPress, вам лишь необходимо указать логин и пароль, для доступа на ФТП-сервер, все остальное WordPress  сделает самостоятельно.

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

Кстати по ру.блогосфере покатилась волна обновлений дизайна блогов, Блондинка и Димок обновили дизайны блогов.

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

Продолжить чтение...

20 плагинов совместимых с WordPress 2.7

12 Декабрь 2008

3 Comments

Если вы собрались обновить свой блог, до версии WordPress 2.7 и не уверены в том, что все плагины после обновления останутся работать, можете свериться с этим списком, в нем написаны только те плагины, которые уже совместимы с WordPress 2.7.

  1. Akismet — плагин для борьбы со спамом, который поставляется вместе с установкой WordPress, поэтому всегда совместим с новой версией WordPress.
  2. Spam Karma 2 — еще один плагин для борьбы со спамом, отлавливает спам по многим параметрам, черный список, поддержка Java, идентификация браузера и многое другое. Автор давно не обновлял плагин, но это не мешает ему нормально функционировать на WordPress 2.7
  3. FeedBurner FeedSmith — плагин для переадресации ваших RSS-подписчиков, на сервис FeedBurner.
  4. Google Analyticator — плагин который устанавливает код Google Analytics в шаблон вашего блога. Отлично работает на WordPress 2.7, но есть один глюк который появляется при использовании callback-функции для отображения комментариев в новом стиле и включенном мониторинге исходящего траффика в плагине GA.
  5. Google XML Sitemap — плагин не обновлялся, для того что бы заявить о совместимости с WordPress 2.7, но это не мешает ему нормально работать с новой версией WordPress.
  6. PHP Code Widget — позволяет вставлять в записи PHP-код и выполнять его, без необходимости редактирования шаблона блога.
  7. SEO Friendly Images — поисковая оптимизация картинок в вашем блоге
  8. Smart YouTube — плагин упрощающий работу с YouTube видео, в записях вашего блога.
  9. Podcasting — плагин для тех, кто ведет собственные подкасты.
  10. WP-Polls — плагин для создания опросов в вашем блоге.
  11. WordPress Database Backup — плагин для автоматического резервного копирования базы данных блога.
  12. Simple Tags — плагин для управления тегами в блоге. Выпустили новую версию 1.5.8-2.7, которая идет с подтвержденной поддержкой WordPress 2.7. Старая версия WordPress 1.5.7 также нормально работала, после небольшого исправления в файле плагина. В сборке WordPress 2.7 от Ивана Калинина (Lecactus) включен уже исправленный, русифицированный плагин Simple Tags.
  13. All in One SEO Pack — плагин для поисковой оптимизации WordPress блога, c версией 2.7 отлично работает, никаких глюков не замечено.
  14. LiveJournal Crossposter — плагин для кросспостинга записей из вашего блога в ЖЖ.
  15. Popularity Contest — также нормально работает с WordPress 2.7, однако не забывайте, если вы устанавливаете этот плагин заново, возможно нужно будет создать таблицы в базе данных для его правильной работы.
  16. Show Top Commentators — плагин для отображения лучших комментаторов в вашем блоге.
  17. Shutter Reloaded — удобный просмотр картинок на вашем блоге.
  18. WP Super Cache — плагин для кэширования страниц блога. Недавно вышло обновление с заявленной поддержкой WordPress 2.7
  19. WP-DBManager — плагин для работы с базой данных блога, оптимизация, резервное копирование и тп.
  20. Novikov's Parasite Eliminator — отличный плагин, для удаления спам-комментариев из вашего блога, никаких проблем с работой в WordPress 2.7 не имеет. Отзывы Алтайского блоггера по работе этого плагина.

Если у вас установлены плагины, которых нет в этом списке, вы можете найти страницу плагина на сайте WordPress и почитать какие версии WordPress поддерживает данный плагин, либо пишите в комментарии, будем проводить эксперементы.

Очень надеюсь что большинство блоггеров, обновят свои блоги до Нового Года, что бы в Новом Году, писать и наслаждаться удобством и красотой нового дизайна админки WordPress 2.7. Если вы еще не соблазнились ознакомьтесь с новыми возможностями WordPress 2.7.

Кстати, если вы еще не подготовили свой блог к Новому Году, обязательно почитайте о подготовке блога к Новому Году.

Продолжить чтение...