Рубрика: Плагины

Как в WordPress использовать локализацию в javascript?

Скрипт, в котором хранятся переводимые переменные

Начинающие разработчики под WordPress часто сталкиваются с проблемой локализации js-скриптов. Если встроить локализацию в сам php-плагин очень просто (достаточно добавить текстдомейн ко всем текстовым переменным), то с js-скриптами такой номер не пройдет. Для локализации js-скриптов в WordPress есть специальная функция wp_localize_script, которую должны использовать все разработчики плагинов и тем. Использование этой функции на примере я и хочу вам показать.

Как скрыть активированные плагины от других администраторов?

Если вы не единственный администратор на сайте, то вам стоит побеспокоиться о том, чтобы другие администраторы не отключали и не удаляли плагины, которые требуются для корректной работы сайта. Я уже рассматривал способ, каким можно скрыть ссылки "Деактивировать" и "Изменить" на странице плагинов, а теперь предлагаю вам скрыть нужные плагины от чужих глаз вообще. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

//скрываем плагины от всех кроме главного админа start
function wph_hide_plugins($plugins) {
    global $current_user;
    get_currentuserinfo();
    if( $current_user->ID != 1 ) {
        if( is_plugin_active('cyr2lat/cyr-to-lat.php') ) {
            unset( $plugins['cyr2lat/cyr-to-lat.php'] );
        }
    }
    return $plugins;
}
add_filter('all_plugins', 'wph_hide_plugins');
//скрываем плагины от всех кроме главного админа end

Как создать виртуальную страницу (virtual page) в WordPress?

Пример открытия виртуальной страницы

Я уже рассматривал код, которым можно программно создать страницу при активации темы. Однако, внутри плагина логично будет не создавать физическую страницу, а обойтись виртуальным аналогом. То есть виртуальные страницы на сайте будут доступны только, пока плагин активирован. Для чего это может быть нужно? Вариантов масса - от реализации какого-либо собственного API до банального вывода карты сайта без создания физических страниц. Некоторые плагины, например, таким образом, создают собственные страницы авторизации и регистрации на сайте. Но не суть, для чего вам это надо. Главное как это сделать. Первым делом вы должны в свой плагин (или тему) добавить следующий код:

Как вывести список установленных на сайте плагинов?

Список активных на сайте плагинов

Если вы хотите где-нибудь на странице "О сайте" (или в любом другом месте сайта) вывести список установленных и активных на сайте плагинов, то вы можете воспользоваться специальным шорткодом [plugins], для установки которого вам необходимо добавить в файл functions.php вашей темы следующий код:

Как удалить title у миниатюр в галерее NextGEN Gallery?

При всех своих несомненных достоинствах плагин NextGEN Gallery не позволяет удалить title или alt у картинок в галерее какими-либо настройками. Если вам необходимо удалить автоматически вставленный title, то вы должны вручную отредактировать каждую картинку в галерее. И это становится ужасно раздражающей и нудной операцией, если вы добавляете новые галереи на сайт каждый день. От необходимости править заголовки можно избавиться с помощью простейшего скрипта, вставленного в подходящий шаблон вашей темы (footer.php):

<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.ngg-gallery-thumbnail img').prop('title', '');
});
</script>

Заголовок (title) будет удален у миниатюр каждой галереи плагина на сайте. При желании скрипт можно расширить, чтобы он удалял не только title, но и атрибут alt.

Как программно создать папку в uploads из своего плагина?

Если в вашем плагине используются какие-нибудь динамически изменяемые файлы (самой простой пример - кэшированная карта сайта или локально сохраняемые аватары пользователей), то хранить эти файлы вы должны в папке uploads, которая специально для этого предназначена в движке. В некоторых случаях необходимо сохранять свои файлы в отдельной папке внутри директории uploads. Создать такую папку очень просто. Вам необходимо добавить в свой плагин следующий код:

//создание своей папки в uploads start 
function my_plugin_activate() {
    $upload = wp_upload_dir();
    $upload_dir = $upload['basedir'];
    $upload_dir = $upload_dir . '/myplugindir';
    if (!is_dir($upload_dir)) {
       mkdir($upload_dir, 0777);
    }
}
register_activation_hook(__FILE__, 'my_plugin_activate');
//создание своей папки в uploads end

При активации вашего плагина будет создана указанная в коде папка myplugindir, в которую вы сможете сохранять файлы своего плагина.

Как добавить свои ссылки на странице плагинов?

Свои ссылки у плагина

При разработке плагинов для WordPress иногда возникает необходимость вывести дополнительные ссылки у своего плагина на странице плагинов в админке сайта. Ссылки могут указывать на страницу настроек плагина (особенно актуально, когда настройки плагина выводятся не в меню "Настройки" - пользователям не нравится искать, куда вы засунули настройки своего плагина), или на страницу документации по плагину, или на любую другую страницу по вашему выбору. Добавить свои ссылки для плагина вовсе не сложно, код для этого достаточно небольшой: