Здравствуйте, уважаемые читатели! Сегодня предлагаю вашему вниманию короткую, но весьма практичную публикацию.
API WordPress не может не радовать и не перестает удивлять. Масса задач решается с помощью хуков и плагинов, что позволяет не затрагивать файлы ядра и, как следствие, без особых проблем производить регулярные обновления движка.
Перейдем к делу. На днях, в рамках работы над одним проектом, у меня возникла острая необходимость переименовать стандартный пункт меню «Записи».

Да-да, тот самый стандартный тип публикаций, который предоставляется в WP из коробки. И вот какие пути решения данной задачи мне удалось найти.
Как ни странно, но даже на этот счет в каталоге плагинов WordPress нашлось решение.

Плагин «Rename Post To News»
Как гласит описание к плагину «Rename Post To News»:
Иногда вам необходимо чтобы тип записей назывался «Новости», но вы не хотите/не можете/вам просто лень создавать отдельный тип записей для этого. Этот небольшой плагин переименует «Записи» в «Новости».
Перевод вольный. А сам плагин я не устанавливал. Верю в то, что он обязательно должен работать 🙂
Кстати, скачать его можно и на Github. Уверен, что данное решение будет интересно еще и как пример написания собственного расширения для WordPress.
Способ номер два. Хук, который нужно разместить в файле functions.php.
Если требуется переименование только лейбла «Записи» в меню:
add_filter( 'gettext', 'change_post_name' );
add_filter( 'ngettext', 'change_post_name' );
function change_post_name( $translated ) {
$translated = str_ireplace( 'Записи', 'Новости', $translated );
return $translated;
}
Если требуется переименование лейбла «Записи» и сопутствующих ссылок/подсказок:
function change_post_menu_label() {
global $menu, $submenu;
$menu[5][0] = 'Новости';
$submenu['edit.php'][5][0] = 'Новости';
$submenu['edit.php'][10][0] = 'Добавить новость';
$submenu['edit.php'][16][0] = 'Новостные метки';
echo '';
}
add_action( 'admin_menu', 'change_post_menu_label' );
function change_post_object_label() {
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = 'Новости';
$labels->singular_name = 'Новости';
$labels->add_new = 'Добавить новость';
$labels->add_new_item = 'Добавить новость';
$labels->edit_item = 'Редактировать новость';
$labels->new_item = 'Добавить новость';
$labels->view_item = 'Посмотреть новость';
$labels->search_items = 'Найти новость';
$labels->not_found = 'Не найдено';
$labels->not_found_in_trash = 'Корзина пуста';
}
add_action( 'init', 'change_post_object_label' );
Вот в общем-то и все. Надеюсь, что данная публикация была вам полезна.
Оставить комментарий