10 Фрагменти на WordPress за персонализиране на теми
Когато използвате WordPress, е изключително лесно да промените външния вид на вашия сайт, благодарение на темите. Има много (като цял куп) от WordPress Теми, достъпни както безплатно, така и за премия. Изберете тема, инсталирайте я и можете да получите напълно нов облик на уебсайта ви за минути.
Но отвъд даването на външен вид и усещане, WordPress тема може да бъде разширена и по много начини. Можете да създавате нови функционалности с приставки, но в тази публикация разглеждаме WordPress функции, които могат да бъдат удобни за вашата тема. Просто трябва да поставите тези функции в файла functions.php на вашата тема, за да се получи ефектът.
Препоръчителна литература: Как да управляваме и използваме кодови фрагменти в WordPress
1. Променете дължината на откъса
Една откъс е кратко парче от публикацията, което можете да видите. WordPress, в този случай, настройва извадката на 55 думи по подразбиране. Но, WordPress ни позволява да персонализираме дължината по подразбиране чрез excerpt_length
филтър, както следва.
функция my_excerpt_length ($ length) return 30; add_filter ('excerpt_length', 'my_excerpt_length', 999);
Връщаната стойност се отнася до сумата от думи, които ще се показват като откъс. В примера по-горе, ние показваме стойност от 30 думи за всяка публикация в откъса.
2. Намаляване на публикуваните ревизии
WordPress позволява на писателите и блогърите да погледнат назад към предишните версии на тяхната работа. Въпреки това, тъй като ревизиите се увеличават, те също могат да повлияят на ефективността на уебсайта, тъй като всяка нова записана ревизия добавя нов ред към базата данни. Този проблем ще се влоши само с течение на времето.
За да разрешите този проблем, можете да зададете колко ревизии искате да запишете в базата данни. За да направите това, отворете WP-config.php и добавете този фрагмент по-долу. Променете номера, за да ограничите броя на ревизиите, които искате да запазите.
define ('WP_POST_REVISIONS', 5);
Ако предпочитате да забраните версията на WordPress, превключете стойността на FALSE
като този:
define ('WP_POST_REVISIONS', false);
3. Автоматично задаване на изображения на поста
Обичайна практика е да се показва изображение, което представлява или описва публикация. WordPress изисква от нас да зададем това изображение ръчно. За да направим процеса по-ефективен, можем да зададем изображението автоматично като направите първото изображение в публикацията представеното изображение. Използвайте следния кодов фрагмент.
функция autoset_featured () global $ post; $ already_has_thumb = has_post_thumbnail ($ post-> ID); ако (! $ already_has_thumb) $ attach_image = get_children ("post_parent = $ post-> ID & post_type = attachment & post_mime_type = image & numberposts = 1"); if ($ attach_image) foreach ($ attach_image като $ attachment_id => $ attachment) set_post_thumbnail ($ post-> ID, $ attachment_id); add_action ('the_post', 'autoset_featured'); add_action ('save_post', 'autoset_featured'); add_action ('draft_to_publish', 'autoset_featured'); add_action ('new_to_publish', 'autoset_featured'); add_action ('pending_to_publish', 'autoset_featured'); add_action ('future_to_publish', 'autoset_featured');
4. Принудете минималната дължина на коментара
Не е фен на коментарите от 1-2 думи като “Приятна публикация!”, “Добра работа!”? Въпреки че коментарът може да не е спам, това са вид коментари, които обикновено не насърчават по-нататъшните дискусии. Ако искате вашите коментатори да говорят, можете да зададете минимална дължина на думите, необходима преди читателите да могат да публикуват коментарите си.
По-долу е показан фрагмент за задаване на минималния брой знаци или думи за коментари. Сложете го functions.php.
функция minimal_comment_length ($ commentdata) $ minimalCommentLength = 20; ако (strlen (trim ($ commentdata ['comment_content'])))
$ minimalCommentLength
стойността е минималният брой знаци, който е необходим, за да направите промените си на тази стойност, за да го настроите.5. Изключване на връзки от коментари на потребители
Връзките, които са включени в формуляра за коментари, веднага ще се превърнат в връзка с възможност за кликване, след като бъдат публикувани и одобрени. Това може да бъде използвано от спамерите, като ги насърчава да наводнят вашия раздел с коментари с линк към тяхната страница "спам".
За да се противопоставите на това, можете да добавите този филтър, за да деактивирате възможността за кликване на връзката (ите) и да ги запазите просто като обикновен текст.
remove_filter ('comment_text', 'make_clickable', 9);6. Премахнете клас и ИД от персонализирани менюта
Ако погледнете потребителското меню в WordPress, ще намерите куп класове и идентификатори на всеки елемент от менюто. Използвайте фрагмента по-долу, за да премахнете класовете, които не искате, и да запазите класовете, от които се нуждаете.
функция my_css_attributes_filter ($ var) return is_array ($ var)? array_intersect ($ var, array ('current-menu-item')): '; add_filter (' nav_menu_css_class ',' my_css_attributes_filter ', 100, 1); add_filter (' nav_menu_item_id ',' my_css_attributes_filter ', 100, 1); add_filter ('page_css_class', 'my_css_attributes_filter', 100, 1);В горния код запазваме
ток-меню-т
клас.7. Изключете страници от търсенето
Извършването на търсения в WordPress ще извлече резултатите от двете страници и публикации, понякога с малко значение за заявката ви за търсене. За да предотвратите това, можете да филтрирате резултатите от търсенето, за да показвате само тези, които са намерени в публикациите. Добавете този фрагмент към function.php да го направя.
функция SearchFilter ($ query) if ($ query-> is_search) $ query-> set ('post_type', 'post'); върне $ query; add_filter ('pre_get_posts', 'SearchFilter');8. Заменете Howdy Text
Отегчен с текста "Howdy"? Ако искате да промените това на специален поздрав на вашия сайт, просто добавете това в functions.php и ефектът ще се извърши незабавно..
функция change_howdy ($ translated, $ text, $ domain) if (false! == strpos ($ translated, 'Howdy')) върнете str_replace ('Howdy', 'Hello', $ translated); върнете $ translated; add_filter ('gettext', 'change_howdy', 10, 3);9. Добавете Допълнително премахване на Меню за конкретни роли
С този фрагмент можете да скриете менютата, които се намират в таблото за управление за не-администратори.
функция remove_admin_menus () if (is_user_logged_in () &&! current_user_can ('администратор')) remove_menu_page ('index.php'); // Dashboard remove_menu_page ('edit.php'); // Постове remove_menu_page ('upload.php'); // Media remove_menu_page ('edit.php? Post_type = page'); // Pages remove_menu_page ('edit-comments.php'); // Коментари remove_menu_page ('themes.php'); // Външен вид remove_menu_page ('plugins.php'); // Plugins remove_menu_page ('users.php'); // Потребителите премахват _menu_page ('tools.php'); // Инструменти remove_menu_page ('options-general.php'); // Настройки add_action ('admin_init', 'remove_admin_menus');Моля, обърнете внимание, че това просто премахва менютата от екрана, но не филтрира разрешението на потребителя за достъп до тези меню. Той не пречи на потребителя да влиза в тези менюта директно през адресната лента на браузъра. Не забравяйте да ги добавите към вашия functions.php.
10. Премахнете връзката на админ бар за не-администратори
В таблото за управление на WordPress, освен главното меню на страничната лента, ще намерите и няколко връзки в менюто в горната част. Можете да ограничите достъпа до тази връзка от административната лента от конкретни роли или потребители. Този фрагмент по-долу ще премахне менюто в административната лента за потребители, които не са администратор - коригирайте съответно.
функция remove_admin_bar_links () глобална $ wp_admin_bar; if (! current_user_can ('administrator')) $ wp_admin_bar-> remove_menu ('wp-logo'); // Премахване на логото на WordPress $ wp_admin_bar-> remove_menu ('за'); // Премахване на връзка за WordPress $ wp_admin_bar-> remove_menu ('wporg'); // Премахване на връзката WordPress.org $ wp_admin_bar-> remove_menu ('документация'); // Премахване на връзката за документация на WordPress $ wp_admin_bar-> remove_menu ('support-forums'); // Премахнете връзката във форумите за поддръжка $ wp_admin_bar-> remove_menu ('feedback'); // Премахване на връзката за обратна връзка $ wp_admin_bar-> remove_menu ('site-name'); // Премахване на връзката с името на сайта $ wp_admin_bar-> remove_menu ('view-site'); // Премахване на връзката за посещение на сайта $ wp_admin_bar-> remove_menu ('updates'); // Премахване на връзката за обновяване $ wp_admin_bar-> remove_menu ('comments'); // Премахване на линка с коментари $ wp_admin_bar-> remove_menu ('new-content'); // Премахване на новата връзка със съдържанието $ wp_admin_bar-> remove_menu ('my-account'); // Премахване на раздела с подробности за потребителя add_action ('wp_before_admin_bar_render', 'remove_admin_bar_links');