Małe fragmenty kodu rozszerzające funkcjonalność WordPress . Tak można scharakteryzować fragmenty w jednym zdaniu. Czy moduły też odgrywają tę rolę? Jasne, mają one bardzo podobny charakter, ale o unikalności snippetów decydują dwa kluczowe czynniki: nie wymagają instalacji i ze względu na swoją minimalną objętość nie obciążają serwera.
Spis treści
Jak pracować z fragmentami WordPress ?
Najczęstszą lokalizacją do przechowywania fragmentów jest plik functions.php w aktywnym motywie i może być równie przydatna do użytku globalnego w pliku wp-config.php. Wystarczy otworzyć edytor tekstu i dodać odpowiedni kod do tych plików. Pewną wadą ręcznego wstawiania snippetów jest ich połączenie z aktualnie aktywowanym motywem, z wyjątkiem wspomnianego wyżej wyjątku z wp-config.php.
Rozwiązaniem jest moduł Code Snippets , który działa systemowo iw zaciszu środowiska administracyjnego, poza obowiązkowym dodawaniem, modyfikacją, usuwaniem własnych kodów, a także ich archiwizacją poprzez plik XML. Poszczególne fragmenty można aktywować i wyłączać w razie potrzeby, fragmenty kodu mogą być również używane do instalacji wielostanowiskowej, a słowackie tłumaczenie tego modułu z pewnością będzie dla ciebie bonusem.
Fragmenty WordPress w praktyce
Wraz z rosnącą popularnością WordPress rośnie również liczba interesujących fragmentów. Poniższy wybór to przykład wielu przydatnych rozwiązań, kilka linków do innych zasobów można znaleźć na końcu artykułu.
Ten fragment kodu usuwa etykietę wersji WP z nagłówka strony
function remove_wp_version() { return ''; } add_filter('the_generator', 'remove_wp_version');
Do nagłówka wstawimy jQuery z Google Apis
if( !is_admin() ){ wp_deregister_script('jquery'); wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"), false, ''); wp_enqueue_script('jquery'); }
lub czcionka z obsługą słowackich akcentów z Google Fonts
function load_fonts() { wp_register_style ('googleFonts', 'http://fonts.googleapis.com/css?family=News+Cycle&subset=latin,latin-ext'); wp_enqueue_style( 'googleFonts'); } add_action('wp_print_styles', 'load_fonts');
Wyłączymy wyświetlanie paska administracyjnego dla wszystkich użytkowników oprócz administratorów
if (!current_user_can('administrator')): show_admin_bar(false); endif;
Będziemy edytować informacje o użytkowniku w jego profilu
function new_contactmethods( $contactmethods ) { $contactmethods['twitter'] = 'Twitter'; // pridame Twitter $contactmethods['facebook'] = 'Facebook'; // pridame Facebook unset($contactmethods['yim']); // odoberieme Yahoo IM unset($contactmethods['aim']); // odoberieme AIM unset($contactmethods['jabber']); // odoberieme Jabber return $contactmethods; } add_filter('user_contactmethods','new_contactmethods',10,1);
Usuniemy gotowe widżety WordPress
function unregister_default_widgets() { unregister_widget('WP_Widget_Pages'); unregister_widget('WP_Widget_Calendar'); unregister_widget('WP_Widget_Archives'); unregister_widget('WP_Widget_Links'); unregister_widget('WP_Widget_Meta'); unregister_widget('WP_Widget_Search'); unregister_widget('WP_Widget_Text'); unregister_widget('WP_Widget_Categories'); unregister_widget('WP_Widget_Recent_Posts'); unregister_widget('WP_Widget_Recent_Comments'); unregister_widget('WP_Widget_RSS'); unregister_widget('WP_Widget_Tag_Cloud'); unregister_widget('WP_Nav_Menu_Widget'); unregister_widget('Twenty_Eleven_Ephemera_Widget'); } add_action('widgets_init', 'unregister_default_widgets', 11);
Wyłączymy korzystanie z edytora wizualnego
add_filter('user_can_richedit' , create_function('' , 'return false;') , 50);
Dobierzemy własną długość listy składek
custom_excerpt_length($length) { return 100; } add_filter('excerpt_length', 'custom_excerpt_length');
Zmienimy przekierowanie po zalogowaniu się użytkownika
add_action('login_form', 'redirect_after_login'); function redirect_after_login() { global $redirect_to; if (!isset($_GET['redirect_to'])) { $redirect_to = get_option('siteurl'); // presmerujeme na homepage } }
Autorowi damy 7 dni na edycję już opublikowanego artykułu
function stop_post_editing_filter( $capauser, $capask, $param){ global $wpdb; $post = get_post( $param[2] ); if( $post->post_status == 'publish' ){ // obmedzenie bude platit pre rolu Autor if( $capauser['author'] == 1 ){ if( ( $param[0] == "edit_post") || ( $param[0] == "delete_post" ) ) { $post_time_unix = strtotime( str_replace('-', ':', $post->post_date ) ); $current_time_unix = time(); $diff = $current_time_unix - $post_time_unix; $hours_after_publication = floor( $diff / 60 / 60 ); // po 168 hodinach od publikovania bude automaticky vypnuta moznost dalsej upravy prispevku if( $hours_after_publication >= 168 ){ foreach( (array) $capask as $capasuppr) { if ( array_key_exists($capasuppr, $capauser) ) { $capauser[$capasuppr] = 0; } } } } } } return $capauser; } add_filter('user_has_cap', 'stop_post_editing_filter', 100, 3 );
Ustawimy interwał automatycznego zapisywania postu na 10 minut – 60 sekund x 10 (w pliku wp-config.php)
define('AUTOSAVE_INTERVAL', 600);
Wyłącz publikowanie wersji (w wp-config.php)
define('WP_POST_REVISIONS', false);
Lub ustawiamy limit wersji postu na 5
define('WP_POST_REVISIONS', 5)
Automatycznie opróżniamy Kosz co 5 dni (w pliku wp-config.php)
define('EMPTY_TRASH_DAYS', 5 );
Wstawimy link do edycji posta (np. w plikach single.php lub page.php)
<?php edit_post_link ('Upraviť príspevok'); ?>
Najbardziej znane źródła fragmentów WordPress
Kopia zapasowa, kopia zapasowa, kopia zapasowa!
Prawo Murpy’ego jest jasne: im większy błąd w kodzie, tym bardziej nieoczekiwany będzie się pojawiał. Aby uniknąć ewentualnych komplikacji, nie zapomnij wykonać kopii zapasowej edytowanego pliku i bazy danych.
Czy stworzyłeś własne fragmenty lub odkryłeś jakieś interesujące podczas roamingu w Internecie? Napisz do nas o tym w komentarzach.
Czy ten artykuł był dla Ciebie pomocny? Wesprzyj mnie jego udostępnianiem. 👍