avense
Ответы в темах
-
Только стоит помнить, что не всех хотят это использовать. Не отпугните пользователей.
Да, как дополнительный вариант на выбор, с галочкой в форме входа или в настройках профиля 🙂
Благодарю всех!
Попробую делать двух факторную авторизацию или использовать соответствующие плагины.- Ответ изменён 7 лет, 3 месяца назад пользователем avense.
всего то надо сравнить хэши этого типа —> wp_hash_password(). Это вообще возможно?
Нет. Если бы для входа было достаточно только хеша — можно было бы с тем же успехом хранить в базе пароли в открытом виде: злоумышленник, получивший дамп базы, мог бы моментально авторизоваться на сайте, не подбирая пароль.
Ну если сравнить не возможно, тогда не получится сделать задуманное.
Пускай даже WordPress хранит пароли в md5 далее в хэше методом wp_hash_password, но ведь передается пароль при авторизации в открытом виде, что не есть надежно, разве что если использовать соединение по протоколу SSL.Мне нужно что бы авторизация была все же WordPress-совская, всего то надо сравнить хэши этого типа —> wp_hash_password()
Это вообще возможно?
Как то же сравнивает функция wp_check_password() простой пароль…
Смотрел её в wp-includes, но не разобрался.Я понимаю что сравнить хэши паролей в md5 просто:
$pass_client = md5("пароль"); $pass_server = md5("пароль"); if( $pass_client == $pass_server ) echo "OK";
А вот вопрос в том как сравнить эти хэши паролей:
$pass_client = wp_hash_password( "111" ); // Результат: $P$BoCWftwFtN8sUMkmZNJvUO5kLmMOMb0 $pass_server = wp_hash_password( "111" ); // Результат: $P$BZiVqS35VVNvGlF5xHD561ShKKxWvH1 if( my_func( $pass_client, $pass_server ) ) echo "OK";
Так как хэши пароля каждый раз уникальные в отличии от хэша md5 и тому подобных.
- Ответ изменён 7 лет, 3 месяца назад пользователем avense.
Задержка в том что я не знаю можно ли и как именно сравнить эти два хэша паролей..?
if ( wp_check_password( "input_text_password", $server_hash_password ) ) а надо что то типа if ( wp_check_password( $client_hash_password, $server_hash_password ) )
К примеру:
echo wp_hash_password( "111" ); // Результат: $P$BoCWftwFtN8sUMkmZNJvUO5kLmMOMb0 echo "<br>"; echo wp_hash_password( "111" ); // Результат: $P$BZiVqS35VVNvGlF5xHD561ShKKxWvH1
Как теперь сравнить что эти два хэша один и тот же пароль «111» ?
Результат: $P$BoCWftwFtN8sUMkmZNJvUO5kLmMOMb0 Результат: $P$BZiVqS35VVNvGlF5xHD561ShKKxWvH1
Sergey Biryukov, благодарю, данный пример работает!
Скажите, а как часто данный action будет запускать функцию disable_publish_button()?
Каждый раз при открытии какой то страницы в админке?Может не донес..
— возьмите сам виджет
— уберите не нужное (код открытый)
— добавьте\уберите что нужно = свой сделайтеДа при чем здесь взять код виджета самому, отредактировать и поместить куда то?
Мне нужно автоматически получать содержимое виджета для вывода например контактов в header. В смысле что бы не вставлять контакты в код шаблона в файле header.php а что бы можно было редактировать их в виджете и они бы выводились в header в нужное место шаблона где будет функция получения содержимого заданного виджета.При необходимости буду пользоваться темы решениями, что я привел по ссылкам выше.
>> написал в отзывах
де? на сайте производителя?здесь, но там только методом: get_option(‘widget_text’);
Я там уже написал в отзывах как можно сделать с помощью get_option(‘widget_text’); для других плагинов.
Хотелось бы знать какие еще есть способы.
Например с помощью класса $wpdb, можно получить содержимое всех виджетов, но не разобрался как получить нужный:global $wpdb;
$widgets = $wpdb->get_var(«SELECT option_value FROM wp_options WHERE option_name = ‘widget_text'»);
echo $widgets;еще есть мм.. не помню как называются — тут страниц 10-20 отмотай назад — там и как вставить и как считать — если савсем плохо будет — пиши в личку.
не нашел.
А вот нашел хороший маленький плагин, который может выводить существующие виджеты по шорткоду:
https://ru.wordpress.org/plugins/widget-shortcode/
Надо посмотреть как он получает содержимое виджетов.ОК!
Благодарю за помощь!Добавил следующий код в файл image.php
<?php if ( is_attachment() && isset($post->post_parent) && is_numeric($post->post_parent) && ($post->post_parent != 0) ) { wp_redirect(get_permalink($post->post_parent), 301); // permanent redirect to post/page where image or document was uploaded exit; } elseif ( is_attachment() && isset($post->post_parent) && is_numeric($post->post_parent) && ($post->post_parent < 1) ) { // for some reason it doesnt works checking for 0, so checking lower than 1 instead... wp_redirect(get_bloginfo('wpurl'), 302); // temp redirect to home for image or document not associated to any post/page exit; } ?>
Теперь переадресовывает тот и тот вид страниц, без использования плагина.
Вопрос, надо ли этом случае во втором условии использовать 302 переадресацию, а не постоянную 301 ?
Для поисковой индексации это правильно будет во втором условии 302 переадресация?Попробуйте переименовать image.php в attachment.php
Переименовывал результат тот же.
Удалил файлы image.php в attachment.php и поставил плагин.
Теперь переадресовывает тот и тот вид страниц отлично!
А можно как то по аналогии кода из плагина Attachment Pages Redirect, сделать что бы добавить код в файл image.php и иметь такой же результат без необходимости использовать плагин?
Вот код из плагина:
<?php function sar_attachment_redirect() { global $post; if ( is_attachment() && isset($post->post_parent) && is_numeric($post->post_parent) && ($post->post_parent != 0) ) { wp_redirect(get_permalink($post->post_parent), 301); // permanent redirect to post/page where image or document was uploaded exit; } elseif ( is_attachment() && isset($post->post_parent) && is_numeric($post->post_parent) && ($post->post_parent < 1) ) { // for some reason it doesnt works checking for 0, so checking lower than 1 instead... wp_redirect(get_bloginfo('wpurl'), 302); // temp redirect to home for image or document not associated to any post/page exit; } } add_action('template_redirect', 'sar_attachment_redirect',1); ?>
В теме не было указанных файлов: image.php или attachment.php
Я создал файл: image.php и поместил туда:
<?php wp_redirect(get_permalink($post->post_parent)); ?>
Страницы о которых я писал в самом верхнем посте начали переадресовываться как Вы и писали, а вот страницы вида /?attachment_id=657 при открытии висят, а точнее браузер пишет: «Отправка запроса на…», потом «Подключение к удаленному узлу….», потом эти запросы поочередно повторяются долго, потом браузер хром выдает на этой странице обнаружена цыклическая переадресация. Пример ссылки с attachment_id
Убираю файл image.php и страницы вида /?attachment_id=657 открываются нормально, хоть они и не нужны в индексе, но их можно закрыть по шаблону в robots.txt
Но вот эта циклическая переадресация с этим типом страниц при открытии, как то настораживает.
Что можно предпринять в данном случае?