Как создать форму защиты страницы Wordpress

Я пытался изменить стиль этой формы защиты страницы Wordpress.

Функция защиты страницы Wordpress включена, а пароль установлен с помощью Wordpress, однако ранее у меня был установлен плагин PPWP, и с его помощью я мог вносить изменения во внешний вид формы.

У меня также установлен Elementor Pro, и похоже, что PPWP использовал Elementor для создания формы и обхода Wordpress для управления функцией защиты паролем страницы.

Теперь, когда я удалил плагин PPWP, я могу включить защиту паролем с помощью Wordpress, но больше не могу изменять внешний вид. Я надеюсь, что смогу использовать дополнительный CSS настройщика темы Hello, чтобы внести изменения во внешний вид формы, сосредоточившись на уникальном идентификаторе, но не могу понять, как это сделать.

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

Исходный код формы следующий (https://www.bohoblossomstudio.com/freebies-vault/):

<div data-elementor-type = "single-page" data-elementor-id = "4471" class = "elementor elementor-4471 elementor-location-single post-4687 page type-page status-publish post-password-required hentry" data-elementor-post-type = "elementor_library">
   <div class = "elementor-element elementor-element-26d69811 e-flex e-con-boxed e-con e-parent" data-id = "26d69811" data-element_type = "container">
     <div class = "e-con-inner"></div>
   </div>
   <div class = "elementor-element elementor-element-324307b9 e-flex e-con-boxed e-con e-parent" data-id = "324307b9" data-element_type = "container">
     <div class = "e-con-inner">
       <div class = "elementor-element elementor-element-50c64a7e elementor-widget elementor-widget-theme-post-content" data-id = "50c64a7e" data-element_type = "widget" data-widget_type = "theme-post-content.default">
         <div class = "elementor-widget-container">
           <form action = "https://www.bohoblossomstudio.com/wp-login.php?action=postpass" class = "post-password-form" method = "post">
             <p>This content is password protected. To view it please enter your password below:</p>
             <p><label for = "pwbox-4687">Password: <input name = "post_password" id = "pwbox-4687" type = "password" spellcheck = "false" size = "20" /></label> <input type = "submit" name = "Submit" value = "Enter" /></p>
           </form>
         </div>
       </div>
    </div>
  </div>
</div>

Скриншот формы:

Я могу добавить отступы с помощью дополнительного CSS и не влиять на другие контейнеры на сайте, но не могу центрировать их на странице. На данный момент у меня есть только этот дополнительный CSS:

div.elementor-4471 {
  padding:2rem;
}

Согласно инспектору, для этого класса показан CSS:

.elementor-4471 .elementor-element.elementor-element-26d69811{
  --display:flex;
  --flex-direction:row;
  --container-widget-width:initial;
  --container-widget-height:100%;
  --container-widget-flex-grow:1;
  --container-widget-align-self:stretch;
  --flex-wrap-mobile:wrap;
  --background-transition:0.3s;
}

Мои навыки HTML, PHP, CSS и JS находятся на зачаточном уровне. Будем признательны за любую помощь в выяснении того, как использовать CSS, PHP или JS для управления этим. Я надеюсь извлечь из этого урок и затем смогу применить его в других подобных ситуациях. Заранее благодарим вас за любые советы, предложения и решения.

Хороший способ допроса. Можно ли поделиться живым примером? Чтобы стилизовать его, нам нужно будет настроить таргетинг на определенные элементы, которые часто переопределяются стилями WordPress и Elementor.

m4n0 27.08.2024 08:40

Спасибо! Я обновил, включив в него URL-адрес веб-страницы и действия формы.

Michael W Moriarty 27.08.2024 08:58
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
2
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы изменить внешний вид формы защиты паролем на определенной странице WordPress, не затрагивая другие, используйте уникальный идентификатор (например, #pwbox-4687) в сочетании с пользовательским CSS. Каждая страница имеет уникальный идентификатор публикации, что позволяет вам настроить таргетинг только на форму пароля на этой странице, гарантируя, что ваши стили не повлияют на формы на других страницах. Для этого выполните следующие действия:

  1. На панели управления WordPress выберите «Внешний вид» > «Настроить».
  2. Выберите опцию «Дополнительный CSS».
  3. Используйте следующий CSS для стилизации формы, гарантируя, что изменения будут применяться только к форме этой страницы.

/* Оформление поля ввода */

#pwbox-4687[type = "password"] {
    width: 100%;
    padding: 8px;
    margin-top: 5px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
} 

После добавления пользовательского CSS нажмите «Опубликовать», чтобы сохранить и применить изменения.

Обратите внимание, что Генеративный ИИ (например, ChatGPT) запрещен , и прочтите Справочный центр: Политика ИИ. Запрещено использовать инструменты искусственного интеллекта для создания или изменения содержания контента, который вы публикуете в Stack Overflow.

DarkBee 27.08.2024 09:26
Ответ принят как подходящий

Учитывая ваш прикладной код:

div.elementor-4471 {
  padding:2rem;
}

Это применит дополнение к элементу (при условии, что селектор div.elementor-4471 соответствует). Однако, если вы подадите заявку, например. display: block вместо padding: 2rem правило display: flex, приведенное ниже, перезапишет его. Это связано с спецификой CSS. Зная это, вам необходимо применить желаемый стиль с более высокой специфичностью, чем код ниже.

.elementor-4471 .elementor-element.elementor-element-26d69811{
  --display:flex;
  --flex-direction:row;
  --container-widget-width:initial;
  --container-widget-height:100%;
  --container-widget-flex-grow:1;
  --container-widget-align-self:stretch;
  --flex-wrap-mobile:wrap;
  --background-transition:0.3s;
}

Посмотрев на предоставленную ссылку, вам нужно применить justify-content: center, чтобы центрировать форму. Вы можете использовать этот селектор:

.elementor-element-324307b9.e-flex .e-con-inner {
   justify-content: center;
}

Вам нужен такой селектор из-за специфичности - поскольку к этому элементу применен этот стиль, показанный ниже, поэтому вам нужно его перезаписать (хотя «initial» установлено как переменная CSS, значение этой переменной — «initial»).

.e-con.e-flex>.e-con-inner {
   justify-content: initial;
}

но еще и потому, что вам нужен уникальный идентификатор (.elementor-element-324307b9), чтобы ваш CSS не мешал ничему другому на странице.

Вы можете применить стиль в том же месте, где вы разместили текущий пользовательский CSS.

Спасибо за ответ и объяснение. Раньше я пробовал «justify: center», но, как вы указали, у меня была неправильная специфика.

Michael W Moriarty 27.08.2024 14:39

У меня есть похожий вопрос, но, вероятно, стоит создать новую тему. Я хотел бы также показать/скрыть пароль при вводе его в поле ввода с использованием javascript focusin и focusout.

Michael W Moriarty 27.08.2024 16:29

Другие вопросы по теме