18
Лип
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

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

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