29 сентября 2007 года, покинул нас Антон Скоробогатов, один из самых видных деятелей и активистов русского сообщества WordPress - MyWordPress.ru. Эту статью я посвятил ему.

Update: Оказывается, в новых версия WP (с 2.2), можно сделать так:
<!–more дальше будет очень интересно!–>. Фраза “дальше будет очень интересно!” теперь станут ссылкой на оставшуюся часть сообщения!
Это наверное единственный пост в Магазете не о Китае. Он о самой Магазете, а вернее о могущественном механизме, на котором “Магазета” работает. Этот механизм зовётся WordPress. Это одна из самых лучших платформ для автономных блогов.
Речь здесь пойдёт о том, как сделать тэг <!–-more-–> “живым”, т.е. как поменять стандартные сообщения “read more”, “читать дальше” для каждого поста в отдельности.
Предисловие
Сразу скажу, что я не мастер в языке php, немного знаю китайский язык и читаю матрицу со словарём.
Как только я перешёл с LiveJournal на WordPress, меня сразу расстроило отсутствие возможности настройки тэга <!–-more-–>, в эквивалент этого в ЖЖ - <lj-cut>, а чтобы задать ему произвольное значение используется тэг <lj-cut text=”произвольный текст”>. Вывод в ЖЖ получается такой:
( more )
это по-умолчанию, а если с произвольным текстом, то:
( произвольный текст )
В WordPress такой возможности (задавать произвольный текст) и подобных плагинов - нет.
Текст ссылки можно задать прямо в шаблоне, или он заменяется стандратным (”Read more” и т.п.). Какой бы вы не писали текст, всё равно все сообщения будут кончаться именно им, а это не оригинально.
Решение
Эту проблему мне помогла решить статья Максима. Использование произвольных полей в WordPress удобная штука, которую мы можем использовать в нашем Лёгком деле - научить WordPress менять текст “more”.
В шаблоне, замените стандартный тэг <? the_conten() ; ?> или <? the_excerpt(); ?>
На такой код:
<?php $text_desc = trim($post_meta_cache[1][$post->ID]['tcut'][0]); ?>
<?php if ( ($post->post_excerpt != ”) && (!is_single()) ) {the_excerpt(); }
elseif ( strlen($text_desc) > 0 ) echo the_content(” . $text_desc,strip_teaser);
else the_content(’Читать дальше →‘,strip_teaser);?>
Что он делает:
Вначале мы вводим возможность использование произвольного поля tcut, об этом подробнее читайте в статье у Макса, tcut вы можете заменить на что угодно.
Потом мы создаём условие, в котором проверяем пуст ли excerpt, не находимся ли мы в single (просматриваем статью полностью). Второе условие, если пуст “excerpt” (анонс), то мы даём выводим содержание произвольного поля tcut. Иначе, просто пишем “Читать дальше →”
Использование
Теперь если мы хотим воспользоваться “живым, умным” more-м, то просто вставляем в нужном месте <!–-more-–>, а в произвольных полях пишем:
Ключ (keyword):
tcut
Значение (description):
Ваш произвольный текст или картника…
Вывод получится таким:
Ваш произвольный текст или картника…
Если же Вы воспользовались excerpt-ом (анонсом), то он сработает стандартно.
Если же Вы воспользовались тэгом <!–-more-–>, но не задавали никаких значений, то по умолчанию выйдет:
Читать дальше →
Вот и всё. Надеюсь всё объяснил доходчиво. Я также написал две статьи:
Антон Скоробогатов. Вечная память ему.






Александр, небольшая поправочка. Правильно использовать <!–more–>
Похоже текст режется… Нужно два минуса, вместо одного, как в html-комментариях.
MAX,
Спасибо Максим, я ещё раньше узрел. Но это WP меняет два минуса на тирэ. Попытаюсь исправить.
Вообще, ничего этого не нужно. Достаточно написать так: <!–more Любой текст–>
В итоге получим:
Любой текст
Pepsimist,
Правильно, я уже в начале статьи исправился.
Но всё равно, спасибо!
А я, как обычно, новый велосипед изобрёл!
какой файл редактировать???
тырпыр, в смысле?