14
Лип
0

Трюки c functions.php которые вы не знали

Трюки c functions.php которые вы не знали

Привет, посетитель. Мой блог будет интересен прежде всего тем, кто интересуется wordpress, продвижением и заработке на сайтах, а также веб-дизайном. Подпишись на RSS ленту или на e-mail подписку и сможешь получить продолжение этой статьи, а также много другого полезного.

Functions.php – это именно замечательная идея для тем wordpress. Это такой файлик, в который вы можете помещать разительно специальные функции, которые будут работать только, если будет использована тема в которой этот файлик лежит.

Как человек, который разработал уже не один десяток сайтов на wordpress, в том числе и довольно потрясающе сложные порталы, могу сказать, что удивительно сейчас невозможно сделать что-то в самом деле интересное на worpdress без использования файла functions.php. У меня уже что и говорить давно есть как нельзя очень специальный набор нужных функций, и именно давно хотел с ними поделиться, как тут прочитал хорошую статью на одном западном сайте, что и говорить где человек проделал уже такую работу и собрал ещё больше разных полезных функций для functions.php, на самом деле поэтому ничего не остается как перевести эту статью и объяснить что к чему.

Первое что нужно знать, это то, что файл должен начинаться на – все остальное нужно вставлять внутрь.

А теперь, поехали

1. Удаляем вывод версии wordpress.

А разительно зачем нам надо признаться лишний раз показывать какая у нас версия стоит, действительно поэтому можем спокойно удалить.

// remove version info from head and feeds function complete_version_removal() { return ''; } add_filter('the_generator', 'complete_version_removal');

2. Добавить свой логотип в админпанель.

По умолчанию в действительности слева стоит логотип вордпресса, но, к примеру, вы хотите наблюдать там свой логотип. Так вот, этим кодом его можно как нельзя более туда вставить

//hook the administrative header output add_action('admin_head', 'my_custom_logo'); function my_custom_logo() { echo ' #header-logo { background-image: url(' http://wpp.pp.ua/.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; } '; }

Ну и понятное дело в папку images вашей темы ложим логотип custom-logo.gif

3. Меняем ссылки в футере админки

Принцип тот же самый, если хотите неимоверно дополнительно пиарить свой ресурс через свои созданные темы, то вставляем в functions.php код

function remove_footer_admin () { echo 'Fueled by WordPress | Designed by Uzzz Productions | WordPress Tutorials: WPBeginner

'; } add_filter('admin_footer_text', 'remove_footer_admin');

4. Добавляем весьма произвольный виджет на доску объявлений в админке.

И не на шутку последний трюк с админкой, к примеру вам нужно создать виджет, который бы давал ваши контакты прямо на главной странице админпанели. Неимоверно тогда нужно

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets'); function my_custom_dashboard_widgets() { global $wp_meta_boxes; wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help'); } function custom_dashboard_help() { echo '

Welcome to Custom Blog Theme! Need help? Contact the developer here . For WordPress Tutorials visit: WPBeginner

'; }

В данном случае появится вот что

Трюки c functions.php которые вы не знали

5. Изменить дефолтные граватарки на сайте.

Весьма иногда надоедают более менее стандартные граватары, хотите, чтобы сайт был более интересным, сделайте свою картинку и вставьте ее следующим кодом

add_filter( 'avatar_defaults', 'newgravatar' ); function newgravatar ($avatar_defaults) { $myavatar = get_bloginfo('template_directory') . '/images/gravatar.gif'; $avatar_defaults[$myavatar] = "WPBeginner"; return $avatar_defaults; }

На странице выбора стандартных граватарок появится ещё одна, ваша, которую вы сможете выбрать как дефолтную.

6. Выводим автора записи через весьма произвольные поля или функция для гостевых постов.

Именно иногда, если вы хотите опубликовать реально гостевой пост, вам нужно будет регистрировать нового пользователя на сайте, чтобы отображалось его имя как автора. Но, а если это только один пост и вы не хотите лишних регистраций. В этом поможет следующий код

add_filter( 'the_author', 'guest_author_name' ); add_filter( 'get_the_author_display_name', 'guest_author_name' ); function guest_author_name( $name ) { global $post; $author = get_post_meta( $post-> ID, 'guest-author', true ); if ( $author ) $name = $author; return $name; }

теперь вы можете добавлять имя автора через сильно произвольное поле guest-author, значением которого и будет имя автора

7. включить поддержку миниатюр.

с версии 2.9, движок поддерживает создание миниатюр. Для этого в файле functions.php нужно вбить одну строку

add_theme_support( 'post-thumbnails' );

Сильно частично о миниатюрах я писал в пункте 5 статьи о 2.9 версии

8. включить поддержку функции меню

С версии 3.0 wordpress имеет возможность настраивать порядок, сортировку, вложения и т.д. меню. Но для этого нужно вставить код

add_theme_support( 'menus' );

А меню нужно будет выводить в нужном месте с помощью кода

9. Удаляем или добавляем как нельзя именно необязательные поля при регистрации

После регистрации, в профиле юзера будут видны такие поля как aim, jabber, но на самом деле часто они нам не нужны. Чтобы их удалить, пишем

add_filter('user_contactmethods','hide_profile_fields',10,1); function hide_profile_fields( $contactmethods ) { unset($contactmethods['aim']); unset($contactmethods['jabber']); unset($contactmethods['yim']); return $contactmethods; }

А чтобы добавить как нельзя действительно нужное, создаем такой код

function my_new_contactmethods( $contactmethods ) { // Add Twitter $contactmethods['twitter'] = 'Twitter'; //add Facebook $contactmethods['facebook'] = 'Facebook'; return $contactmethods; } add_filter('user_contactmethods','my_new_contactmethods',10,1);

Необыкновенно последний кусок кода добавит в профиль поля фейсбука и твиттера

Трюки c functions.php которые вы не знали

Чтобы использовать теперь то или инное поле, вставляем в шаблон

Действует только для версии от 2.9 и выше.

10. Регистрируем виджеты.

ну это есть что и говорить почти в любой теме, но напомню ещё раз.

if ( function_exists('register_sidebar') ) register_sidebar(array('name'=> 'MiddleSidebar', 'before_widget' => '

  • ', 'after_widget' => '
  • ', 'before_title' => '

    ', 'after_title' => '

    ', ));

    а в шаблон нужно вставить

    11. вставляем копирайты в футер

    function wpbeginner_postrss($content) { if(is_feed()){ $content = 'Этот пост написан автором ETNO '.$content.'Посетите сайт http://fleek.org'; } return $content; } add_filter('the_excerpt_rss', 'wpbeginner_postrss'); add_filter('the_content', 'wpbeginner_postrss');

    Этот код вставляет определенный текст в rss канал

    12. вставляем миниатюры в рсс канал

    function rss_post_thumbnail($content) { global $post; if(has_post_thumbnail($post-> ID)) { $content = '

    ' . get_the_post_thumbnail($post-> ID) . '

    ' . get_the_content(); } return $content; } add_filter('the_excerpt_rss', 'rss_post_thumbnail'); add_filter('the_content_feed', 'rss_post_thumbnail');

    13.подключаем вложенные комментарии

    // enable threaded comments function enable_threaded_comments(){ if (!is_admin()) { if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) wp_enqueue_script('comment-reply'); } } add_action('get_header', 'enable_threaded_comments');

    Этот код не создает вложенные комментарии, он просто включает их поддержку + нужно не забыть включить их в админке в вкладке обсуждение.

    14. создаем шорткод adsense.

    Как нельзя очень сейчас объясню на примере. Допустим вы хотите вставлять код адсенс внутри поста, но вам не хочется тем более постоянно вводить весь код каждый раз. Чтобы упростить создаем такой шорткод

    function showads() { return ''; } add_shortcode('adsense', 'showads');

    тем более где вместо XXXXXXXXX – пишем свой номер. Теперь, добавив код [adsense] внутрь поста он будет не на шутку автоматически заменяться на код адсенса при опубликовании.

    15. редирект на feedburner без помощи плагинов и .htaccess

    function custom_feed_link($output, $feed) { $feed_url = 'http://feeds.feedburner.com/wpbeginner'; $feed_array = array('rss' => $feed_url, 'rss2' => $feed_url, 'atom' => $feed_url, 'rdf' => $feed_url, 'comments_rss2' => ''); $feed_array[$feed] = $feed_url; $output = $feed_array[$feed]; return $output; } function other_feed_links($link) { $link = 'http://feeds.feedburner.com/wpbeginner'; return $link; } //Add our functions to the specific filters add_filter('feed_link','custom_feed_link', 1, 2); add_filter('category_feed_link', 'other_feed_links'); add_filter('author_feed_link', 'other_feed_links'); add_filter('tag_feed_link','other_feed_links'); add_filter('search_feed_link','other_feed_links');

    16. отложенное обновление rss ленты.

    Многие сервисы тянут с вашего сайта фид, но вот незадача, впрямь часто они индексируются лучше, чем ваш сайт и контент на вашем сайте могут посчитать неуникальным. так, что следущий трюк я бы ставил по умолчанию. Он обновляет ленту рсс не весьма сразу, а через некоторое указанное вами время

    // delay feed update function publish_later_on_feed($where) { global $wpdb; if (is_feed()) { // timestamp in WP-format $now = gmdate('Y-m-d H:i:s'); // value for wait; + device $wait = '5'; // потрясающе здесь пишем сколько нужно времени // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff $device = 'MINUTE'; // указываем единицу измерения MINUTE, HOUR, DAY, WEEK, MONTH, YEAR // add SQL-sytax to default $where $where .= " AND TIMESTAMPDIFF($device, $wpdb-> posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'publish_later_on_feed');

    17. кастомизируем окончание выдержки.

    Если вы используете в шаблоне тег excerpt, то знаете, что он обрывается троеточием, этот код позволит исправить это.

    // custom excerpt ellipses for 2.9 function custom_excerpt_more($more) { return '…'; } add_filter('excerpt_more', 'custom_excerpt_more'); /* custom excerpt ellipses for 2.8- function custom_excerpt_more($excerpt) { return str_replace('[...]', '…', $excerpt); } add_filter('wp_trim_excerpt', 'custom_excerpt_more'); */

    18. кастомизируем длину выдержки

    По умолчанию длина 55 слов, этим кодом можно сделать 100

    function new_excerpt_length($length) { return 100; } add_filter('excerpt_length', 'new_excerpt_length');

    19. отключить рсс фид вообще

    в действительности иногда это тоже нужно, в самом деле например, на корпоративных сайтах

    function fb_disable_feed() { wp_die( __('No feed available,please visit our homepage !') ); } add_action('do_feed', 'fb_disable_feed', 1); add_action('do_feed_rdf', 'fb_disable_feed', 1); add_action('do_feed_rss', 'fb_disable_feed', 1); add_action('do_feed_rss2', 'fb_disable_feed', 1); add_action('do_feed_atom', 'fb_disable_feed', 1);

    20. удаляем по-моему ненужные ссылки с wp_head.

    По умолчанию там много всего выводится, и потрясающе часто то, что не нужно. Отключаем таким кодом

    // remove junk from head remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'feed_links', 2); remove_action('wp_head', 'index_rel_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'feed_links_extra', 3); remove_action('wp_head', 'start_post_rel_link', 10, 0); remove_action('wp_head', 'parent_post_rel_link', 10, 0); remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);

    21. подключаем библиотеку jquery с гугла, а не с нашего сервера

    а не на шутку зачем нагружать свой сайт лишними скриптами, если их можно грузить с гугла

    // smart jquery inclusion if (!is_admin()) { wp_deregister_script('jquery'); wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false); wp_enqueue_script('jquery'); }

    22. проверяем нагрузку сайта

    function sys_stat() { printf(('System statistic : %d queries / %s seconds'), get_num_queries(), timer_stop(0, 3)); if ( function_exists('memory_get_usage') ) echo ' / ' . round(memory_get_usage()/1024/1024, 2) . ' mb'; }

    теперь как нельзя действительно где-то в футер вставляем

    и узнаем кол-во запросов к базе и скорость.

    Мониторинг сети: Неимоверно недавно нашел удивительно интересный сайт с секретами на все случаи жизни. От спорта до отношений, все это читайте на этом сайте

    feedproxy.google.com

    Випадкові записи

    Залиште свій коментар