Пачка полезных сниппетов для блога. Часть 12

Добавляем произвольные параметры в функцию 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; ?>
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top