Запрещаем запросы от вредоносных URL
Очень удобный и полезный код для каждой новой установки вордпресс. Простой и надежный. Он запрещает все запросы, в которых содержится вредоносный код.
Добавляем следующий сниппет в файл functions.php вашей темы:
global $user_ID; if($user_ID) { if(!current_user_can('administrator')) { if (strlen($_SERVER['REQUEST_URI']) > 255 || stripos($_SERVER['REQUEST_URI'], "eval(") || stripos($_SERVER['REQUEST_URI'], "CONCAT") || stripos($_SERVER['REQUEST_URI'], "UNION+SELECT") || stripos($_SERVER['REQUEST_URI'], "base64")) { @header("HTTP/1.1 414 Request-URI Too Long"); @header("Status: 414 Request-URI Too Long"); @header("Connection: Close"); @exit; } } }
Скрываем панель уведомления об обновлениях в WordPress
Добавляем следующий сниппет в файл functions.php вашей темы:
add_action('admin_head', 'remove_upgrade_nag'); function remove_upgrade_nag() { echo '<style type="text/css"> .update-nag {display: none} </style>'; }
Изменяем стандартное ‘Введите заголовок’ для пользовательских типов записей
Код изменит стандартное сообщение при создании новой записи с ‘Введите заголовок’ на ‘Пожалуйста, укажите заголовок для записи’
Добавляем следующий сниппет в файл functions.php вашей темы:
add_filter( 'enter_title_here', 'change_default_title' ); function change_default_title( $title ){ $screen = get_current_screen(); switch($screen->post_type) { case 'post': $title = 'Пожалуйста, укажите заголовок для записи'; break; } return $title; }
Можно использовать тот же код для пользовательских типов записей. Просто добавляем другое условие с названием пользовательских типов записей и указываем заголовок для них.
switch($screen->post_type) { case 'post': $title = 'Пожалуйста, укажите заголовок для записи'; break; case 'article': $title = 'Пожалуйста, укажите заголовок для статьи'; break; }
Вход под администратором с именем пользователя или email адресом
Пользователи и администраторы WordPress будут иметь возможность входить на сайт, указывая свой email адрес в дополнение к имени пользователя.
Добавляем следующий сниппет в файл functions.php вашей темы:
add_filter( 'gettext', 'change_username_wps_text' ); add_action('wp_authenticate','login_with_email_address'); function login_with_email_address($username) { $user = get_user_by('email',$username); if(!empty($user->user_login)) $username = $user->user_login; return $username; } function change_username_wps_text($text){ if(in_array($GLOBALS['pagenow'], array('wp-login.php'))){ if ($text == 'Username'){ $text = 'Username / Email'; } } return $text; }
Отображаем миниатюры в ленте RSS
Добавляем следующий сниппет в файл functions.php вашей темы:
add_filter('the_content_feed', 'rss_post_thumbnail'); function rss_post_thumbnail($content) { global $post; if( has_post_thumbnail($post->ID) ) $content = '<p>' . get_the_post_thumbnail($post->ID, 'thumbnail') . '</p>' . $content; return $content; }
Отключаем автосохранение записей в WordPress
Добавляем следующий сниппет в файл functions.php вашей темы:
add_action( 'wp_print_scripts', 'disableAutoSave' ); function disableAutoSave(){ wp_deregister_script('autosave'); }
Открываем все ссылки в новом окне
Все ссылки в записях будут открываться в новом окне (вкладке) браузера.
Добавляем следующий сниппет в файл functions.php вашей темы:
add_filter('the_content', 'open_in_new_window'); function open_in_new_window($text) { $return = str_replace('<a', '<a target="_blank"', $text); return $return; }
Подсвечиваем текущую страницу в меню
Добавляем следующий сниппет в файл style.css вашей темы:
/* Подсветка с помощью элемента list */ li.current_page_item { background:#999; } /* Подсветка с помощью элемента link */ li.current_page_item a { color:#fff; }
Выполняем несколько запросов к произвольным типам записей с помощью шорткода
Добавляем следующий сниппет в файл functions.php вашей темы:
add_shortcode('customPost', 'customPostType_shortcode'); function customPostType_shortcode() { extract(shortcode_atts(array( 'type' => 'post', 'limit' => '10', ),$atts)); //Запрос query_posts('post_type='.$type.'&showposts='.$limit); //Цикл if ( have_posts() ) : while ( have_posts() ) : the_post(); echo "<h3><a href=\"".the_permalink($post->ID)."\">".get_the_title($post->post_title)."</a></h3>"; echo the_excerpt(); endwhile; else: endif; //Сбрасываем запрос wp_reset_query(); }
Использование:
[customPost type=movies,books limit=5]
Убираем или заменяем один или более классов меню wordpress
Добавляем следующий сниппет в файл functions.php вашей темы:
add_filter('wp_nav_menu', 'wpds_wp_nav_menu'); function wpds_wp_nav_menu($text) { $replace = array( 'current-menu-item' => 'current', 'sub-menu' => '', ); $text = str_replace(array_keys($replace), $replace, $text); return $text; }
Результат:
“sub-menu” класс убирается из сгенерированной навигации, а класс “current-menu-item” будет заменен на “current”.
Источник: WPDevSnippets