Инструменты пользователя

Инструменты сайта


wordpress

WordPress

Инсталляция на Debian 6.0.2 Squeeze, Ubuntu 12.04.4 LTS

  • Установка недостающих зависимостей (у вас они уже могут быть установлены).
    aptitude install mysql-server phpmyadmin
    aptitude install libjs-cropper libjs-prototype libjs-scriptaculous \
     libphp-phpmailer libjs-jquery libphp-snoopy php-gettext 
  • Инсталляция:
    mkdir wordpress
    cd wordpress/
    wget -c https://wordpress.org/latest.zip
    unzip latest.zip
    cp wp-config-sample.php wp-config.php
  • Создаем в MySQL БД для нашего сайта и пользователя от которого будет работать CMS WordPress, например при помощи phpMyAdmin. Полученными данными заполняем файл wp-config.php.
    mysql> CREATE DATABASE databasename;
    Query OK, 1 ROW affected (0.00 sec)
     
    mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"localhost"
        -> IDENTIFIED BY "password";
    Query OK, 0 ROWS affected (0.00 sec)
     
    mysql> FLUSH PRIVILEGES;
CREATE DATABASE databasename;
GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"localhost" IDENTIFIED BY "password";
FLUSH PRIVILEGES;
  • Обязательно заполните уникальные ключи и соли для аутентификации в файле wp-config.php. Для этого как указано в самом файле wp-config.php удобно использовать генератор ключей для Wordpress.
    # chown -R www-data:www-data /var/www/example.com
    # chmod 600 wp-config.php
  • Заходим при помощи браузера на ваш сайт http://www.example.com/wp-admin/install.php и заполняем название сайта и пользователя с правами суперпользователя. Можно не ставить галочку напротив пункта "Разрешить поисковым системам индексировать сайт.", в дальнейшем это можно изменить в административной панели.
  • Настраиваем ЧПУ без добавления html к названию страницы, то есть
    /%category%/%postname%

Wordpress. Права доступа в файлам и директориям

Безопасные атрибуты для файлов и папок Wordpress, используя утилиту chmod: 755 на папки; 644 на файлы; 600 на wp-config.php. Для установки компонентов нужно разрешить Apache писать и удалять в директории wp-content.

find public_www/wp-content -type d -exec chmod 770 {} \;
find public_www/wp-content -type f -exec chmod 660 {} \;

WordPress - настройка ЧПУ

WordPress - настройка ЧПУ (Человеку Понятный Урл(URL)).

Прежде всего перед настройкой ЧПУ в Apache включите mod_rewrite.

Настройку ЧПУ нужно выполнять сразу после установки wordpress, иначе позже дополнительно придётся настраивать перенаправление на уже проиндексированные страницы, c некрасивым URL. В административной части переходим в Параметры→Постоянные ссылки и мы можем там выбрать из нескольких предустановленных вариантов ЧПУ или в разделе "Произвольно" создать свой новый. Например:

/%category%/%postname%.html

или если вы хотите, чтобы адреса постов были без указания на категорию, тогда укажите:

/%postname%/

Рекомендуется указывать категорию и не ставить слеш в конце:

/%category%/%postname%
Символы .html (или .htm) в конце можно как указывать, так и не указывать — это больше дело личных предпочтений.

Эти действия приводят к созданию файла .htaccess в корне вашего сайта (в начальной поставке Wordpress такого файла нет).

Нужно установить плагин для того, чтобы адреса с кириллицы переводились на латиницу (а лучше изначально адреса задавать в латинице), например: RusToLat, Cyr-To-Lat, на 2017 год хорошо работает плагин Cyr to Lat enhanced.

WordPress. Восстановить пароль администратора

  • Сбросить пароль администратора WordPress с помощью FTP. Для этого необходимо войти на ваш сайт по FTP и загрузить файл functions.php вашей активной темы. Изменить файл и добавить в него код в самом начале, после первого <PHP?:
    wp_set_password ('newpassword', 1);

Где newpassword — новый пароль, а «1″ номер идентификатора пользователя в таблице wp_users. Загружаем измененный файл на ваш сайт и заходим. После того как возможность заходить в админку восстановлена, необходимо удалить установленный код, иначе он будет изменять пароль на newpassword при каждой загрузке страницы.

  • Сменить пароль администратора с помощью SQL. Для восстановления пароля с помощью SQL необходимо выполнить следующий запрос:
    UPDATE wp_users SET user_pass = MD5('newpassword') WHERE ID=1;

    И не забывайте менять префикс wp_ на тот, которым пользуетесь вы сами. Этим запросом мы меняем шифрованный MD5 пароль в таблице wp_users для пользователя с ID=1 на «newpassword». Можно сменить пароль и для любого другого пользователя на сайте, достаточно поменять в запросе ID на нужный. У администратора ID пользователя всегда 1. Можно также использовать запрос и с указанием конкретного логина:

    UPDATE wp_users SET user_pass = MD5('newpassword') WHERE user_login = 'admin';
  • Восстановить пароль WordPress через email. Если вы знаете логин и е-мейл администратора, то востановить пароль можно с помощью формы Забыли пароль?. Способ самый простой, но на локальном сервере это не сработает.

WordPress. Обновление

  1. Сделать Бекап как самого сайта так и БД, любым удобным вам способом
  2. Выключить все плагины
  3. Удалить директории wp-admin и wp-includes с вашего сайта
  4. Может потребоваться удалить файл .htaccess
  5. Сравнить (и если требуется изменить) содержимое старого файла wp-config.php с новым wp-config-sample.php, так как в новом файле wp-config-sample.php могли появиться новые директивы или удалены старые.
  6. Скопировать все файлы скачанного WordPress новой версии, поверх старой версии WordPress
  7. Запускаем обновление http://example.com/wp-admin/upgrade.php
Для обновления плагинов может потребоваться включить параметр define('FS_METHOD', 'direct');

WordPress. Кэширование

В самом ядре WordPress кэширование страниц не реализовано, но есть все необходимые функции для реализации этого на уровне плагинов. Плагины для кэширования страниц:

  • W3 Total Cache - для использования всех возможностей включить Модули Apache, HTML Tidy extension(required for HTML Tidy minifier suppport)
a2enmod headers
a2enmod expires
aptitude install php-tidy
service apache2 restart

Плагин W3 Total Cache - полная оптимизация скорости загрузки сайта

WordPress. xmlrpc.php wp-config.php wp-login.php

Файл xmlrpc.php используется только для удаленной публикации статей на вашем сайте. Если вы его не используете доступ к нему должен быть закрыт. Для Apache

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

Для Nginx

location = /xmlrpc.php {
log_not_found off;
# access_log off;
deny all;
}

Файл wp-config.php можно смело закрыть доступ

location = /wp-config.php {
log_not_found off;
# access_log off;
deny all;
}

Файл wp-login.php в зависимости от задач, может быть закрыт полностью по аналогии с xmlrpc.php или открыт только для определенных. Для Apache

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx
</Files>

WordPress. Смена siteurl

Данная задача возникает, если вам потребовалось поднять копию WordPress сайта под другом имени домена.

Переменная siteurl в WordPress отвечает за формирование относительных ссылок. Значение данной переменной записывается в БД, поэтому и изменить её можно путем редактирования БД и/или модификации файла wp-config.php.

  • Модификация wp-config.php. Для решения добавьте в файл wp-config.php строки:
    define('WP_SITEURL', 'http://example.com');
    define('WP_HOME', 'http://example.com');

    где example.com замените не название сайта.

  • Модификация параметра в БД. В таблице wp_options находим значение переменой siteurl и меняем его на нужное нам.

WordPress. Использование Cookie

  • Установить(Set a Cookie in WordPress).
add_action('init', function() {
    if (!isset($_COOKIE['my-name'])) {
        setcookie( 'my-name', 'my-value', strtotime('+1 day'), COOKIEPATH, COOKIE_DOMAIN   );
    }
});
  • Показать все куки (Get a Cookie in WordPress).
add_action( 'wp_head', 'my_getcookie' );
function my_getcookie() {
$alert = isset( $_COOKIE['my-name'] ) ? $_COOKIE['my-name'] : 'not set';
 echo "<script type='text/javascript'>alert('$alert')</script>";
 echo "<script type='text/javascript'>alert( document.cookie );</script>";
}
  • Удалить (Delete or Unset a Cookie in WordPress).
add_action( 'init', 'my_deletecookie' );
function my_deletecookie() {
setcookie( 'my-name', '', strtotime('+1 day'), COOKIEPATH, COOKIE_DOMAIN );
}

WordPress. Nginx + Apache

Рабочие примеры для WordPress.

nginx.example.net
server {
 
server_name example.net www.example.net;
listen 80;
root /var/www/example.net/public_www;
index index.php index.html index.htm;
error_log /var/log/nginx/example.net.error.log info;
access_log /var/log/nginx/example.net.access.log;
 
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
 
location = /favicon.ico {
log_not_found off;
access_log off;
}
 
location = /xmlrpc.php {
log_not_found off;
# access_log off;
deny all;
}
 
location ~ /\.ht {
deny all;
}
 
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
# expires max; expires 1w;
expires 14d;
# log_not_found off;
# access_log off;
}
 
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
apache.example.net
<VirtualHost 127.0.0.1:8080>
 
ServerAdmin webmaster@example.net
ServerName example.net
ServerAlias www.example.net
 
ServerSignature Off
 
<IfModule mpm_itk_module>
    AssignUserID webluxor webluxor
</IfModule>
 
php_admin_value open_basedir "/var/www/example.net/public_www:/tmp"
 
DirectoryIndex index.php index.html
 
DocumentRoot "/var/www/example.net/public_www"
<Directory "/var/www/example.net/public_www/">
    Options FollowSymLinks -Indexes
# for mod_rewrite changed from All to FileInfo and turn on Options FollowSymLinks
#       AllowOverride All
    AllowOverride FileInfo Limit
    Order allow,deny
    Allow from all
 
</Directory>
 
        ErrorLog /var/log/apache2/example.net.error.log
        LogLevel warn
        CustomLog /var/log/apache2/example.net.access.log combined
 
</VirtualHost>

WordPress. Cделать отступы в абзацах

На сайтах сделанных на WordPress нет отступов первой строчки абзацев. Для добавления абзаца изменим файл style.css нашей темы, где класс entry-content сявляется оберткой для постов. Название класса может быть другим для вашей темы, узнайте его исследовав элемент вашей страницы.

.entry-content p {
text-indent: 2em;
}

WordPress. Подключить Google Analytics

Для подключения Google Analytics к WordPress можно использовать специальные плагины, например

Альтернативный вариант. Пишем код PHP для вставки в файл functions.php вашей активной темы

function my_google_analytics() {
    echo <<<'EOT'
// Ваш код Google Analytics
EOT;
}
add_action('wp_head', 'my_google_analytics');
wordpress.txt · Последние изменения: 2017/03/27 18:23 — darkfire

Яндекс.Метрика