Многие темы для WordPress используют различные настройки внешнего вида и функционала, которые записываются в файл functions.php.
Файл доступен в админ-консоле или можно просто отредактировать файл в папке с темой.
Добавляем рекламный код
Для добавления кода Google AdSense или РСЯ нужно создать новую функцию:
function GA() { return '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- GA --> <ins class="adsbygoogle" style="display:inline-block;width:160px;height:600px" data-ad-client="ca-pub-99xxxxxxxxxx" data-ad-slot="xxxxxxx"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>'; } add_shortcode('adsense1', 'GA');
В его коде могут быть одинарные кавычки, которые могут вызвать ошибки. Их нужно экранировать с помощью простановки обратного слеша перед каждой из таких кавычек.
В принципе так можно добавить любой рекламный код:
function testovoe_nazvanie() { return 'Полученный Вами код AdSense или РСЯ'; } add_shortcode('adsense1', 'testovoe_nazvanie');
Остается в статье в нужном месте вписать Shortcode:
[adsensе1]
Но вписывать такое постоянно вручную неудобно, поэтому можно сделать автоматическую вставку после заголовков H3. Добавляем новую функцию:
function ads_h3($content) { $ads='Полученный вами код'; $content=preg_replace('#<h3(.*?)</h3>#','<h3\1</h3><div>'.$ads.'</div>',$content, 3); return $content; } add_filter('the_content','ads_h3');
Цифра 3 ограничивает количество вставок.
Хотите выводить блоки после тега More:
function adsgoolge_ssd($content) { $google_ads=' здесь ваш рекламный код '; $content=preg_replace('#<span.*?id="more-(.*?)".*?></span>#','<span id="more-\1"></span></p><center>'.$google_ads.'</center><BR><p style="text-align: justify;">',$content); return $content; } add_filter('the_content', 'adsgoolge_ssd');
Если нужно выводить код спустя некоторое количества символов после начала:
function kama_content_advertise($text){ //спустя сколько символов искать перенос строки и вставлять рекламу? $nu = 1500; //Код рекламы $adsense = '<<<HTML Код блока HTML'; return preg_replace('@([^^]{'.$nu.'}.*?)(\r?\n\r?\n|</p>)@', "\\1$adsense\\2", trim($text), 1); } add_filter('the_content', 'kama_content_advertise', -10); ?>
Отсчитывается нужное число символов (1500в нашем примере) от начала статьи, и после очередного закрывающего тега абзаца P вставляется РСЯ и Адсенс реклама. При этом можно добавить несколько подобных функций.
Выводим код после некоторых анонсов (например, после каждой третьего анонса):
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); $loopcounter++; ?><divclass="posts"> <?php if ($loopcounter mod 3 == 0) { include (TEMPLATEPATH . '/google_ads.php'); } ?> <div class="xsnazzy"> <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b><div class="xboxcontent"><base target="_blank"><h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2><?php the_content('Читать полностью'); ?>
Код рекламного блока живет в файле google_ads.php из папки с темой оформления. Сравните этот фрагмент index.php со своим и поймете, что на главной посты выводятся в цикле. Вот мы в него и вклиниваемся, отсчитывая с помощью $loopcounter количество анонсов, которые надо пропустить до вставки рекламного блока. mod 3 — это целочисленное деление, а mod 3 == 0 — это каждый третий элемент.
Другие интересные функции
Вместо троеточия в конце используем стандартную ссылку «Читать далее»:
<?php function new_excerpt_more($more) { return '<a href="'. get_permalink($post->ID) . '">' . ' Читать далее ..' . '</a>'; } add_filter('excerpt_more', 'new_excerpt_more'); ?>
Обрезаем количество слов в тайтле до 7:
В коде шаблона меняем вызов заголовка на:
<?php do_excerpt(get_the_title(), 7); ?>
А в функция добавляем:
function do_excerpt($string, $word_limit) { $words = explode(' ', $string, ($word_limit + 1)); if (count($words) > $word_limit) array_pop($words); echo implode(' ', $words).' ...'; }
Вывод информации о потреблении памяти движком:
function usage() { printf(('%d / %s'), get_num_queries(), timer_stop(0, 3)); if ( function_exists('memory_get_usage') ) echo ' / ' . round(memory_get_usage()/1024/1024, 2) . 'mb '; } add_action('admin_footer_text', 'usage'); add_action('wp_footer', 'usage');
Убраем все лишние мета теги из служебной области Html кода страниц:
remove_action( 'wp_head', 'feed_links_extra', 3 ); remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
Чтобы удалить AdminBar (панель сверху):
add_filter( 'show_admin_bar', '__return_false' );
Убираем кликабельные ссылки в комментариях:
remove_filter('comment_text', 'make_clickable', 9);
В комментариях напиши интересные функции, которые используете Вы.