Запрещаем регистрацию спам-ботов в WordPress

Запретить регистрацию спам-ботов в WordPress довольно просто.
Заметил что частота регистрации спам-ботов возрастает если на главной странице есть форма входа/регистрации пользователей, но убирать ее не нужно, ведь запретить регистрацию ботам можно несколькими простыми способами:

Способ 1. Установить плагин который будет добавлять обязательное для заполнения поле при регистрации. Скрипты авто-регистрации ботов не знают от таком поле и естественно не смогут его заполнить, особенно если в это поле должен вводится фиксированный ответ на какой нибудь вопрос.

Способ 2. Вручную отредактировать код файла wp-login.php (в котором изменим user_login на что угодно). Боты будут заполнять на странице регистрации стандартный user_login, но увы заполнять нужно уже не его :)
Найдём строку:

$user_login = $_POST['user_login'];

И заменим её на:

$user_login = $_POST['user_login'];
if(!empty($user_login)) wp_die('Нет доступа!');
$user_login = $_POST['abc_user_login'];

Найдем ниже:


<label><?php _e('Username') ?>
<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>


И заменим на:

<div style="display: none;">


<label><?php _e('Username') ?>
<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>

</div>



<label><?php _e('Username') ?>
<input type="text" name="abc_user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>


Способ 3. Установить капчу через плагин например, но увы иногда боты могут распознать текст капчи, по этому капча это как дополнительный метод защиты, который может затруднить регистрацию и самим же пользователям.

Как установить движок форума phpBB в Ubuntu

Приведу пример простой установки phpBB в Ubuntu.

Обновим списки пакетов и установим phpBB:

sudo apt-get update
sudo apt-get install imagemagick apache2 mysql-server mysql-client phpbb3

После предыдущей команды установки автоматически будет создан файл конфигурации в директории /etc/apache2/conf-enabled/phpbb3.conf, благодаря которому форум уже можно открыть набрав в адресной строке http://ХОСТ/phpbb (где ХОСТ — домен или IP вашего сервера).

Если конфигурационный файл не был создан, то можно вручную сделать символическую ссылку на директорию с http-файлами phpBB, например:

sudo ln -s /usr/share/phpbb3/www /var/www/forum

Перезапустим web-сервер apache2 чтобы изменения вступили в силу:

sudo /etc/init.d/apache2 restart

Стандартный логин к phpBB: admin
Стандартный пароль к phpBB: admin

Вот и все.

Как скрыть меню Jetpack для пользователей

Чтобы скрыть меню Jetpack для подписчиков и обычных пользователей достаточно дописать следующий код в файл functions.php активной темы:

function ap_remove_jetpack_page( ) {
if ( class_exists( 'Jetpack' ) && !current_user_can( 'manage_options' ) ) {
remove_menu_page( 'jetpack' );
}
}
add_action( 'admin_menu', 'ap_remove_jetpack_page', 999 );

Также для этого существует несколько плагинов, но те что мне попадались довольно старые.

Решение ошибки «Not Found» при включении ЧПУ ссылок WordPress

Заметил на одном сайте работающем на WordPress после изменения пункта «Настройки» — «Постоянные ссылки» на «Произвольные» перестали открываться страницы.
При открытии любой из страниц отображалась ошибка примерно следующего содержания:

Not Found
The requested URL /page was not found on this server.

В первую очередь на директорию в которой находится сайт должны правильно выставлены права и владелец под которым работает веб сервер. Так как при включении произвольных ссылок WordPress, в директории сайта создается файл .htaccess.
Указать владельца и права можно следующими командами (на примере предполагается что сайт находится прямо в /var/www/ и веб-сервер работает под пользователем www-data):

sudo chown www-data:www-data /var/www/ -R
sudo chmod 755 /var/www/

Также должен быть активирован модуль mod_rewrite, активировать его можно командами:

sudo a2enmod rewrite
sudo service apache2 restart

И обязательно в конфигурационном файле веб-сервера где прописаны параметры сайта (обычно они в /etc/apache2/sites-enables/), должен быть указан параметр AllowOverride All, если указано None, то ссылки естественно открываться не будут.
После изменения конфигурации веб-сервера его нужно перезапускать командой:

sudo service apache2 restart

Все.

Как включить визуальный редактор в WordPress

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

Читать далее «Как включить визуальный редактор в WordPress»

Как убрать статистику с главной страницы форума phpBB

Чтобы убрать статистику с главной страницы форума phpBB, закомментируем определенные строки в файле шаблона используемой темы.
Переходим в папку template и откроем в текстовом или html редакторе файл index_body.html.
Найдем следующие строки:

<h3>{L_STATISTICS}</h3>
<p>{TOTAL_POSTS} &bull; {TOTAL_TOPICS} &bull; {TOTAL_USERS} &bull; {NEWEST_USER}</p>

И закомментируем их:

<!-- <h3>{L_STATISTICS}</h3> -->
<!-- <p>{TOTAL_POSTS} &bull; {TOTAL_TOPICS} &bull; {TOTAL_USERS} &bull; {NEWEST_USER}</p> -->

После изменений в файлах обязательно нужно очистить кэш через панель управления или вручную.

Список пользователей онлайн, легенду модераторов и администраторов, дни рождения можно отключить в панели управления форумом: «Главная» -> «Нагрузка на сервер«.

Вставка рекламы между сообщениями форума phpBB

Вставка рекламы между сообщениями форума phpBB делается элементарно, необходимо всего лишь в файле активной темы viewtopic_body.html найти фрагмент кода:

<!-- END postrow -->

И перед ним вставить следующее:

<!-- IF (postrow.S_ROW_COUNT eq 0) || (S_USER_LOGGED_IN eq 0 && postrow.S_ROW_COUNT eq 4) -->

<table class="tablebg" width="100%" cellspacing="0">
<tr class="row1">

<td class="profile" align="center" valign="middle">
<b class="postauthor">Реклама</b>
</td>
<td class="row3h" width="100%">
</td>
</tr>

<tr class="row1">

<td valign="top" class="profile">
<table cellspacing="4" align="center" width="150">

</table>

<span class="postdetails">

</span>

</td>
<td valign="top" colspan="2">
<table width="100%" cellspacing="5">
<tr>
<td>
<table width="100%" cellspacing="0">
<tr valign="middle">
<td class="gensmall" align="{S_CONTENT_FLOW_END}">

</td>
</tr>
</table>

<div class="postbody">

КОД РЕКЛАМЫ

</div>
</td>
</tr>
</table>
</td>
</tr>

<tr class="row1">

<td align="center" class="profile">

</td>
<td colspan="2"></td>
</tr>

<tr>
<td class="spacer" colspan="3" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td>
</tr>
</table>
<!-- ENDIF -->

В итоге зарегистрированным пользователям после первого сообщения будет отображаться реклама, а гостям после первого и пятого.
Порядок можно изменить отредактировав строку (где 0 означает после первого, 4 после пятого):

<!— IF (postrow.S_ROW_COUNT eq 0) || (S_USER_LOGGED_IN eq 0 && postrow.S_ROW_COUNT eq 4) —>

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