Это последняя часть большого цикла статей о хаках и хитростях для WordPress, которые я публиковал последние полторы недели, пришедшиеся на середину апреля 2010 года. Последний набор хаков для WordPress от Starr&Coyier будет посвящен следующему:
— Замена стандартного аватара WordPress на собственный
— Отключение автоматического форматирования контента через короткий код
— Отключение html вставок в комментариях
Замена стандартного аватара на собственный
Нет ничего более унылого, чем стандартные картинки, предлагаемые WordPress взамен тех, кто не имеет собственного аватара. Чтобы заменить их на собственные, впишите следующую функцию в файл function.php действующей темы:
// замена стандартных аватаров
function custom_gravatars($avatar_defaults) {
// change the default gravatar
$customGravatar1 = get_bloginfo('template_directory').'/images/gravatar-01.png';
$avatar_defaults[$customGravatar1] = 'Default';
// add a custom user gravatar
$customGravatar2 = get_bloginfo('template_directory').'/images/gravatar-02.png';
$avatar_defaults[$customGravatar2] = 'Custom Gravatar';
// add another custom gravatar
$customGravatar3 = get_bloginfo('template_directory').'/images/gravatar-03.png';
$avatar_defaults[$customGravatar3] = 'Custom gravatar';
return $avatar_defaults;
}
add_filter('avatar_defaults', 'custom_gravatars');
Затем просто положите собственные картинки в папку images вашей темы и назовите их соответственно gravatar-01.png, gravatar-02.png, gravatar-01.png. Теперь зайдите в админку вашего блога Настройки / Обсуждение и полюбуйтесь на свои картинки, которые предлагаются для выбора в качестве аватара.
Отключение автоматического форматирования
Если вам не хочется, чтобы какой-то кусок текста или контента форматировался WordPress автоматически, то воспользуйтесь этим хаком для WordPress. Добавьте эту функцию к файлу function.php:
// disable auto formatting in posts
function my_formatter($content) {
$new_content = '';
$pattern_full = '{(\[raw\].*?\[/raw\])}is';
$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach ($pieces as $piece) {
if (preg_match($pattern_contents, $piece, $matches)) {
$new_content .= $matches[1];
} else {
$new_content .= wptexturize(wpautop($piece));
}
}
return $new_content;
}
remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');
add_filter('the_content', 'my_formatter', 99);
А текст, который не надо автоматически форматировать, заключите в рамки короткого кода [raw][/raw]
Отключение html кодов в комментариях
Если ваш блог очень много комментируется или вы рассчитываете на то, что на нем в ближайшее время будет очень много комментариев, которые будут выстроены в длинные цепочки споров и дебатов между вашими читателями, которые будут то и дело вставлять в свои комментарии куски кодов, то хак для удаления html тегов будет просто незаменим для вашего блога. Вашим комментаторам будет достаточно ограничить отрезки кода в комментарии в <code></code> и все будет отображаться как надо
// escape html entities in comments
function encode_code_in_comment($source) {
$encoded = preg_replace_callback('/<code>(.*?)<\/code>/ims',
create_function('$matches', '$matches[1] = preg_replace(array("/^[\r|\n]+/i", "/[\r|\n]+$/i"), "", $matches[1]);
return "<code>" . htmlentities($matches[1]) . "</"."code>";'), $source);
if ($encoded)
return $encoded;
else
return $source;
}
add_filter('pre_comment_content', 'encode_code_in_comment');
Эту нехитрую функцию надо вставить в файл function.php и наслаждаться тем, что ваши комментарии не будут отягощены тем, что напечатанный ими код вдруг исчез из комментария бесследно.
Это последнее, о чем я хотел рассказать вам в этом цикле из десяти статей о хаках для WordPress. Впереди еще очень много интересного и полезного, поэтому настоятельно прошу вас подписаться на обновления моего блога через rss и получать удовольствие, читая мои статьи в своем ридере.
Закладки:WordPress хаки, аватар, комментарии, функции function.php






