Добавляем произвольные параметры в функцию body_class()
При создании сайта на WordPress может оказаться реально полезной возможность добавить один (или больше) произвольных параметров к функции body_class(). Вот функция, которую мы используем довольно часто при разработке сайтов для клиентов.
Просто скопируйте и вставьте код в файл functions.php вашей темы или в плагин для сайта WordPress:
function custom_body_class($classes){
if(is_singular()){
$myvar = "myparam";
} else {
$myvar = "anotherparam";
}
global $post;
array_push($classes, $myvar);
return $classes;
}
add_filter('body_class', 'custom_body_class');
Конечно же, код можно и нужно адаптировать под свои нужды. К примеру, реально универсальное решение для мультиязычных сайтов: произвольный параметр можно использовать для вывода текущего языка в классе body.
Как быстро заменить слова в ваших записях блога
Моделируем ситуацию: ваш блог назывался «мойблог», и вы переименовали его в «мойсуперблог». Не нужно редактировать n-ное количество записей для замены каждого встречаемого там «мойблог»! Вот полезный сниппет, который выполнит всю работу за вас за минуту.
Просто добавьте слова для замены в массив в строке 4. После того, как сделаете, вставьте код в файл function.php вашей темы, сохраните и все готово!
function replace_text_wps($text){
$replace = array(
// 'Слово для замены' => 'Новое слово'
'wordpress' => '<a href="#">wordpress</a>',
'excerpt' => '<a href="#">excerpt</a>',
'function' => '<a href="#">function</a>'
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}
add_filter('the_content', 'replace_text_wps');
add_filter('the_excerpt', 'replace_text_wps');
Как заставить RSS Widget обновляться более часто
В WordPress есть встроенный виджет, который позволяет вам отобразить любой фид любого сайта на вашем блоге. И не смотря на то, что виджет замечательный, иногда необходимо, чтобы он обновлял новости чаще, чем по-умолчанию. Вот простое решение, которое изменит частоту обновления.
Для применения функции просто вставьте следующий код в ваш файл functions.php или в плагин для сайта WordPress:
add_filter( 'wp_feed_cache_transient_lifetime', create_function('$a', 'return 600;') );
Грабим и выводим каналы RSS
Вы наверняка в курсе, что в WordPress есть встроенная RSS читалка. Давайте используем ее для получения данных внешней ленты и вывода их на блоге.
Просто вставляем следующий код в то место, где хотим вывести ленту. Не забываем указать ссылку на фид в строке 4.
<?php if(function_exists('fetch_feed')) {
include_once(ABSPATH.WPINC.'/feed.php');
$feed = fetch_feed('http://feeds.feedburner.com/wpincode');
$limit = $feed->get_item_quantity(7); // определяем количество элементов
$items = $feed->get_items(0, $limit); // создаем массив элементов
}
if ($limit == 0) echo '<div>Лента либо пуста, либо недоступна в данный момент.</div>';
else foreach ($items as $item) : ?>
<div>
<a href="<?php echo $item->get_permalink(); ?>"
title="<?php echo $item->get_date('j F Y @ g:i a'); ?>">
<?php echo $item->get_title(); ?>
</a>
</div>
<div>
<?php echo substr($item->get_description(), 0, 200); ?>
<span>[...]</span>
</div>
<?php endforeach; ?>
Встраиваем страницу в другую страницу
Вы используете различные шаблоны страниц в вашей теме WordPress? Если так, вот интересный хак, который позволит вам встроить одну страницу внутрь другой.
Вставьте следующий код ниже в цикл loop. Убедитесь в том, что вы изменили ID страницы в строке 1!
<?php $recent = new WP_Query("page_id=**ID**"); while($recent->have_posts()) : $recent->the_post();?>
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
<?php endwhile; ?>
