Архив рубрики «Новые функции»
Gravatar комментаторов
Вы получите много комментариев от читателей и у многих имеется собственная иконка с сервиса Gravatar. У вас в сайдбаре или футере, а у кого-то в других местах выводится список последних комментариев с именем ответчика. Я хочу предложить сделать интересную вещь, выводить отдельным списком аватарки авторов. Должно получиться довольно интересно и стильно. Прочитать остальную часть записи »
Исключаем ненужные страницы из поиска по блогу
Не очень красивое название получилось, объясню смысл более подробно. Возможно вам понадобиться чтобы поиск по блогу не трогал некоторые страницы, такие как about, контакты или реклама. Тогда мой совет пригодится вам.
Вставляем, приведенный ниже код в файл function.php вашей темы.
function SearchFilter($query) {
if ($query->is_search) {
$query->set('cat','2,21');
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
В примере указаны посты с номерами ID равными 2 и 21. Теперь эти посты не участвуют в поиске.
Подключение файлов JS и CSS
Данный хак полезен для разработчиков плагинов или виджет WordPress. Иногда требуется добавить такие файлы как CSS и Javascript в вашу тему. Но тут уже нужен либо доступ к файлу header.php темы, либо решение, приведенное мною. Далее напишу простой способ добавить что-либо в заголовке блога без редактирования header.php.
Принцип довольно прост, создаем функцию, которая будет печатать необходимые строки с указанием нужных файлов. Далее подключаем новую функцию к функции WordPress wp_head () с помощью add_action ().
function GetLastPostName_head()
{
echo '<script type="text/javascript" src="'.get_settings('siteurl').'/wp-content/plugins/head/head.js"></script>';
echo '<script type="text/javascript" src="'.get_settings('siteurl').'/wp-content/plugins/head/new.js"></script>';
}
add_action('wp_head', 'GetLastPostName_head');
Вывод первого изображения поста
Многие сейчас на своих сайтах и блогах используют превью, т.е. анонс поста, в котором имеется маленькое изображение из содержания и 2-3 предложения. Выглядит это очень красиво, можно выделить некоторую малую область сайта под показ самых популярных постов с помощью таких превью.
В этой статье напишем функцию для получения первого изображения из поста. Снова откроем файл function.php и добавим немного кода:
function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //изображение по умолчанию
$first_img = "/images/default.jpg";
}
return $first_img;
}
Теперь можно вызывать эту функцию в цикле и показывать первое изображение.
<?php echo catch_that_image() ?>
Подсчет слов в статье
Как то понадобилось мне реализовать подсчет слов в статье. Сейчас опишу функцию, которая считает количество слов, возможно кому-то пригодится.
Открываем файл function.php вашей темы и добавляем следующий код в нее:
function wcount(){
ob_start();
the_content();
$content = ob_get_clean();
return sizeof(explode(" ", $content));
}
Теперь можно вызвать эту функцию в loop и получить количество слов в текущем посте.
<?php echo wcount(); ?>
