Исключаем ненужные страницы из поиска по блогу
Не очень красивое название получилось, объясню смысл более подробно. Возможно вам понадобиться чтобы поиск по блогу не трогал некоторые страницы, такие как 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(); ?>
Title и SEO
Вы знаете что поисковая оптимизация это очень важная часть вашего блога, потому что без хорошей оптимизации вы потерей многих потенциальных посетителей. Этот пост посвящен оптимизации тега Title вашего блога.
Откройте файл header.php вашей темы для изменения. Найдите строку содержащую тег title, и заменить ее на следующий код:
<title>
<?php if (is_home () ) {
bloginfo('name');
} elseif ( is_category() ) {
single_cat_title(); echo ' - ' ; bloginfo('name');
} elseif (is_single() ) {
single_post_title();
} elseif (is_page() ) {
bloginfo('name'); echo ': '; single_post_title();
} else {
wp_title('',true);
} ?>
</title>
Этот код будет генерировать Title в соответствии со следующей моделью:
– Если посетитель находится на главной странице блога, то будет показано имя блога;
– Если посетитель находится на странице категории, то будет показано имя категории и название блога;
– Если посетитель находится на странице статьи, то будет показано только названия статьи;
– Если посетитель находится на статической странице, то будет показано название блога и название этой страницы.
