10 приемов для WordPress

19 Мар 2023г. в 12:36

Удаляем из комментариев автоссылки
Если кто-нибудь оставит комментарий, который содержит URL, то URL автоматически будет трансформирован WordPress в ссылку. Кому-то такая функция нравится. А те, кого ссылки в комментариях раздражают, особенно если это спам, могут легко удалить их.

Нужно поместить следующий код в файле functions.php. После сохранения файла вы сразу заметите, что автоссылки исчезли.

1
remove_filter('comment_text', 'make_clickable', 9);
Автоматически уведомляем пользователей о новых записях
Очень полезно извещать своих пользователей о новых опубликованных записях. Следующий код возьмет адреса email всех пользователей из вашей базы данных и автоматически отправит им email, когда будет опубликована новая запись в блоге.

Конечно, не следует использовать данный код на вашем блоге, если у вас нет никаких опций подписки.

1
function email_members($post_ID) {
2
global $wpdb;
3
$usersarray = $wpdb->get_results("SELECT user_email FROM $wpdb->users;");
4
$users = implode(",", $usersarray);
5
mail($users, "Новая заметка в вашем любимом блоге!", 'Новая заметка была опубликована на сервере http://www.гдето.ru');
6
return $post_ID;
7
}
8

9
add_action('publish_post', 'email_members');
Дата в стиле Twitter “Х дней назад”
Вывод дат с использованием формата “Х дней назад” становится очень популярным в блогах благодаря популярности Twitter. WordPress имеет встроенную функцию для такого формирования такого формата даты: human_time_diff().

Разместите ниже приведенный код где-нибудь в цикле, и он будет выводить даты с использованием формата “ Х дней назад”.

1
Опубликовано <?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' назад'; ?>
Выводим миниатюру записи в фиде RSS
Введенная в WordPress 2.9, функция the_post_thumbnail() позволяет легко добавлять и выводить миниатюры, привязанные к заметкам. К сожалению, нет встроенной функций, которая выводит такую миниатюру в ваш фид RSS.

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

1
function diw_post_thumbnail_feeds($content) {
2
global $post;
3
if(has_post_thumbnail($post->ID)) {
4
$content = '<div>' . get_the_post_thumbnail($post->ID) . '</div>' . $content;
5
}
6
return $content;
7
}
8
add_filter('the_excerpt_rss', 'diw_post_thumbnail_feeds');
9
add_filter('the_content_feed', 'diw_post_thumbnail_feeds');
Блокируем внешние запросы
По умолчанию WordPress выполняет внешние запросы, чтобы получить обновления и новости WordPress. Те, кому не нравится такая активность CMS, могут использовать данный код.

Просто добавьте следующую строку в ваш файл wp-config.php:

1
define('WP_HTTP_BLOCK_EXTERNAL', true);
Если вам нужно разрешить некоторые внешние запросы, то легко создать белый список, как показано ниже:

1
define('WP_ACCESSIBLE_HOSTS', 'rpc.pingomatic.com');
Такие строки надо также помещать в файле wp-config.php.

Простое включение режима отладки
Когда что-то идет не так, вы всегда можете использовать очень полезный инструмент WordPress для отладки WP_DEBUG. По умолчанию нужно поместить строку кода в файл wp-config.php, чтобы разрешить режим отладки.

Если вам нужно организовать простой доступ к режиму отладки даже при работающем сайте, нужно отредактировать ваш файл wp-config.php и заменить код:

1
define('WP_DEBUG', true);
на код:

1
if ( isset($_GET['debug']) && $_GET['debug'] == 'debug')
2
define('WP_DEBUG', true);
После внесения изменений просто добавьте параметр GET к URL страницы, которую нужно отладить, например:

1
http://www.ваш_сайт.com/blog/about?debug=debug
Конечно, с точки зрения безопасности следует заменить слово debug на любое произвольное слово, чтобы никто не увидел ваш сайт в режиме отладки.

Используем шорткод WordPress в файлах темы
Шорткод WordPress - это очень простой способ добавить контент (фиды RSS, карты Google, галереи и многое другое) в ваши записи и страницы. Но как выводить шорткод в файлах вашей темы?

Есть встроенная малоизвестная функция. Она называется do_shortcode(). Она принимает один параметр - шорткод,. который вы хотите вывести.

1
do_shortcode('[gallery]');
Разрешаем загружать различные типы файлов
Если вы пытались когда-нибудь загрузить файлы не очень распространенных типов на ваш блог под управлением WordPress, то, скорее всего, получали сообщение об ошибке, потому что WordPress просто не поддерживает загрузку фалов такого типа.

Но вы можете добавить новые типы фалов в белый список WordPress. Нужно просто скопировать следующий код в ваш файл functions.php (типы файлов должны быть разделены символом '|' ):

1
function addUploadMimes($mimes) {
2
$mimes = array_merge($mimes, array(
3
'tmbundle|tmCommand|tmDragCommand|tmSnippet|tmLanguage|tmPreferences' => 'application/octet-stream'
4
));
5

6
return $mimes;
7
}
8

9
add_filter('upload_mimes', 'addUploadMimes');
Шорткод для включения просмотра документа PDF в Google Docs
Google Docs является отличным инструментом для чтения документов в формате .pdf, .doc или .xls в онлайн. Если вы планируете предоставить своим читателям файл PDF, то может быть стоит сделать шорткод, который будет открывать PDF в Google Docs вместо запуска загрузки?

Просто скопируйте код в ваш файл functions.php.

1
function pdflink($attr, $content) {
2
return '<a class="pdf" href="http://docs.google.com/viewer?url=' . $attr['href'] . '">'.$content.'</a>';
3
}
4
add_shortcode('pdf', 'pdflink');
Как только вы сохраните файл, то можно будет использовать шорткод в записях и страницах:

1
[pdf href="http://ваш_сайт.ru/ссылка_на_ваш/файл.pdf"]Смотреть PDF[/pdf]
Определяем браузер пользователя в WordPress
Приведенный ниже простой код определяет название браузера пользователя и добавляет его к функции body_class().

Функцию надо скопировать в файл functions.php.

add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
if($is_lynx) $classes[] = 'lynx';
elseif($is_gecko) $classes[] = 'gecko';
elseif($is_opera) $classes[] = 'opera';
elseif($is_NS4) $classes[] = 'ns4';
elseif($is_safari) $classes[] = 'safari';
elseif($is_chrome) $classes[] = 'chrome';
elseif($is_IE) $classes[] = 'ie';
else $classes[] = 'unknown';

if($is_iphone) $classes[] = 'iphone';
return $classes;
}
Вывод функции будет выглядеть следующим образом:

<body class="home blog logged-in safari">