Архив рубрики «Подсказки и полезные советы»
Удалим меню на доске объявлений WordPress
Возможно этот хак кому-то будет полезен, в нем мы уберем меню из доски объявлений WP или dashboard. Думаю пригодится он многим.
Итак, скопируем приведенный мною код в свой functions.php.
function remove_menus () {
global $menu;
$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}
}
add_action('admin_menu', 'remove_menus');
В коде в третьей строке в массиве перечисляются как раз пункты меню, которые будут удалены.
Можете его подредактировать на свое усмотрение.
На этом сегодня все, удачи!
Миниатюры самых популярных постов
Блоггеры часто демонстрируют свои самые популярные статьи на боковой панели своего блога. Далее я вам покажу как без плагина возможно получить эти самые посты и связанные с ними миниатюры.
Ничего сложного нет, вам нужно всего лишь добавить этот код в тему туда, где необходим этот самый вывод популярных статей с картинками.
<?php $popular = new WP_Query('orderby=comment_count&posts_per_page=5'); ?>
<?php while ($popular->have_posts()) : $popular->the_post(); ?>
<?php $justanimage = get_post_meta($post->ID, 'Image', true);
if ($justanimage) { ?>
<img src="<?php echo get_post_meta($post->ID, "Image", true); ?>" alt="<?php the_title(); ?>" />
<?php } else { ?>
<img src="http://an-alternative-image.jpg" alt="" />
<?php } ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endwhile; ?>
Вам требуется только отредактировать orderby=comment_count и posts_per_page=5.
Вот и все, удачи!
Исключаем ненужные страницы из поиска по блогу
Не очень красивое название получилось, объясню смысл более подробно. Возможно вам понадобиться чтобы поиск по блогу не трогал некоторые страницы, такие как 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() ?>
