Проблема в wordpress “У вас недостаточно полномочий для доступа к этой странице” очень распространенная и многих она сильно раздражает. Поэтому хочу здесь собрать всевозможные решения проблемы, самые разные. Список может иногда дополняться. Подсказывайте в комментариях, какое решение еще нужно добавить.
Проблема в базе данных
Можно перепробовать кучу вариантов решений, но так и не решить эту проблему. Как было в моем случае.
Интернет просто писает кипятком, т.к. эта проблема уже порядком всех зае..ала.
Этот способ должен помочь тем, кто при переносе блога с хостинга на хостинг менял префикс в базе данных. Меняли префикс??? Тогда читайте дальше!
Оказывается!!
Суть в том, что префиксы таблиц есть не только в названиях самих таблиц (которые в левом столбце phpmyadmin). Они еще зашиты кое-где внутри этих самих таблиц. Внутри ячеек.
Первый шаг
Нам нужна таблица wp_usermeta (точнее с уже новым вашим префиксом), а в ней столбец meta_key. В этом столбце как раз и разбросаны старые префиксы по разным ячейкам, которые нам и нужно заменить на новые.
Можете копаться вручную, но лучше сделать это одним запросом:
UPDATE `newprefix_usermeta` SET `meta_key` = REPLACE( `meta_key` , 'wp_', 'newprefix_' );
где newprefix – это новый префикс вашей таблицы, а wp – старый.
Скопируйте этот запрос, откройте в базе данных вкладку SQL, туда вставьте, поменяйте значения на свои и нажмите “Вперед”.
У меня заменилось порядка 18 значений. У вас может чуть отличаться, но неважно.
Второй шаг
Старые префиксы закопались еще в таблице wp_options, в столбце option_name. Там есть строка wp_user_role (приблизительно 92 строка, но не суть), в которой как раз и надо заменить это несчастное wp, на новое значение (на новый префикс).
Представляете?? Вот где собака зарылась, а я-то всё перелопатил и бесполезно.
Лучше снова выполнить замену с помощью запроса, чем искать вручную:
UPDATE `newprefix_options` SET `option_name` = 'newprefix_user_roles' WHERE `option_name` ='wp_user_roles'
Где newprefix – это новый префикс, а wp старый.
Опять же копируете этот запрос, открываете в базе данных вкладку SQL, туда вставляете, меняете значения на свои и нажимаете “Вперед”.
У меня заменилось 1 значение.
Проблема в плагинах
В директории сайта есть папка для плагинов plugins. Переименуйте ее, например, в plugins1, и если проблема ушла, то значит дело было в каком-то из плагинов. Выяснить в каком конкретно уже проще, дело техники.
Обратно переименовываем plugins1 в plugins и теперь уже отключаем все плагины по очереди, то есть добавляем к названию папки каждого отдельного плагина любой символ, например, единичку, таким образом он перестанет работать, отключится.
Говорят, что бывает капризничает плагин WP DataBase Backup. У меня лично такой ситуации не было, но имейте ввиду.
Секретные ключи в файле wp-config.php
Как вариант может помочь следующий способ.
В корне сайта есть файл wp-config.php. В нем нужно обновить секретные ключи, которые выглядят вот так:
define('AUTH_KEY', 'aig|Q!&>)m;`NeNj{iSC|6 g-a1>_8Z6|?q:trh-5Rn_/Y lZ=^msp2zjo%1+ ZP'); define('SECURE_AUTH_KEY', 'FAP>TV@7r8BbORTV0ll4~g6A-d+8;7ubJ]2WJkP):99C!$Me2lh&4jiw7reb9&-j'); define('LOGGED_IN_KEY', '!l%`kU8pzs,~UedD{t.D/uY9>k,EWVwtI,|i<p.i//W?#v^)t.H]gfDIK/O~,NQB'); define('NONCE_KEY', '+<n<P;**=?t<5m$QU 44W+GKx|Xxm?f)M%K*/-p@o)Y^CVeI,h:F#T*gP?tP5&^v'); define('AUTH_SALT', 'cKAK+@MA+8D-eVb-TISthe@f-:S+-M?uvFfF(lmdSUPWvUA;b,A|GY=K ENdAW;5'); define('SECURE_AUTH_SALT', 'k[vISMV}+~vQ<zvg!qFLwNs{l0>,(%/yh~~Xqy4<-vfi7/)N<(dD;jz%|84KqUA6'); define('LOGGED_IN_SALT', 'nBOs>m^ ty[$PSz Uv~lG4%zH|t}Ie8_?|x&>@-Ad{,Yo+S,D^QEJ}qsBcBQK:v6'); define('NONCE_SALT', 'q=Ws:T|ng%YOC>-=E+)UHZ@(OwMH>ELWT-QjRFybn1]@+nf;nzcWC.KpPa &Z9');
Эти значения можно самому придумать хаотично, но лучше воспользоваться генератором https://api.wordpress.org/secret-key/1.1/salt/.
Права на папки
Некоторые пишут, что при переносе как будто бы сбиваются права на папки и файлы. Попробуйте поиграться с правами. Возможно и поможет. Лично меня напрягает выставлять права на отдельные папки, выбирать, заморачиваться. Поэтому, когда меня прижимает, то я предварительно делаю бекап папки public_html (чтобы сохранить текущие права у различных папок и файлов), потом захожу в аттрибуты основной папки public_html и ставлю права 755 рекурсивно (т.е. на нее и на все, что в ней вложено).
Оставлять в таком виде с такими правами категорически не советую, этот способ просто, чтобы понять – а в правах ли дело. Если нет, то возвращаем заранее подготовленный бекап папки.
Такие дела.
Пишите в комментариях, какие решения проблемы вам известны еще.