18 ноября 2011 г.

Смайлики в комментариях блога на Wordpress без плагинов

Платформа wordpress имеет встроенные текстовые смайлы, т.е. они автоматически преобразуются из правильно введенного набора символов.
Например, если написать ":-)", то получим обычный улыбающийся смайл.

Но проблема в том, что мало, кто знает наборы символов, с помощью которых получаются смайлы. А с ними комментарии выглядят более живыми что ли..:) Поэтому нужно помочь в этом своим читателям.
Существуют специальные плагины, которые добавляют набор смайлов рядом с полем для комментария, но зачем использовать плагины, если в wordpress'е это всё уже есть..?
Всё, что нам требуется, это добавить небольшой код в нужном месте.:)

Открываем файл comments.php (или в админке блога, или на сервере), находим там текстовое поле для комментария, которое начинается с тэга <textarea...>, и перед ним вставляем следующий код:
<!-- Smiles -->
<script type="text/javascript">
function addsmile($smile){
document.getElementById('comment').value=document.getElementById('comment').value+' '+$smile+' ';
}
</script>
<?php
global $wpsmiliestrans;
$dm_showsmiles = '';
$dm_smiled = array();
foreach ($wpsmiliestrans as $tag => $dm_smile) {
    if (!in_array($dm_smile,$dm_smiled)) {
        $dm_smiled[] = $dm_smile;
        $tag = str_replace(' ', '', $tag);
        $dm_showsmiles .= '<img src="'.get_bloginfo('wpurl').'/wp-includes/images/smilies/'.$dm_smile.'" alt="'.$tag.'" onclick="addsmile(\''.$tag.'\');"/> ';
    }
}
echo '<div style="width:100%; margin-left:0px; margin-right:0px;">'.$dm_showsmiles.'</div>';
?>
<!-- Smiles -->
Всё, теперь смайлы будут отображаться перед полем для комментария, и никаких плагинов для этого не понадобилось.:)

Понравился пост? Поделись с друзьями!

И смотри дальше:

5 комментариев :

  1. А если хостинга у бложика нет, тогда не прокатит такая шняга? 

    ОтветитьУдалить
  2. Если есть доступ к файлам шаблона, то значит можно вставить и смайлы.
    Я просто не знаю, как устроены бесплатные блоги на wordpress.com

    ОтветитьУдалить
  3. имеешь ввиду ксс и прочее? Тогда нет, только на платной основе. 

    ОтветитьУдалить
  4. ну. тогда придется хостинг юзать. 

    ОтветитьУдалить