У меня есть функция WordPress, которая отображает рекламу очень часто. Когда не отображаются по существу, я бы предпочел, чтобы div отображал: none;
Я не могу понять правильную функцию PHP, чтобы div не отображался при загрузке рекламы.
<div class="advert" <?php if(!empty($_GET['details'])) {echo "style='display: none'";} ?>></div>
Почему не совсем не эхо «рекламного» элемента?
if ( !empty($_GET['details']) ){
echo '<div class="advert">add text</div>';
}
если вы действительно хотите просто скрыть, вы можете назначить скрыть класс
<div class="advert <?php echo ( empty($_GET['details'])? 'hide' : '' );">add text</div>
тогда вам нужно будет добавить класс «hide» с display: none в вашем style.css
Выше сокращенное / троичное выражение if / else используется, это здорово, если вам нужно вывести некоторую строку.
И, пожалуйста, не выводите / не доверяйте никаким пользовательским вводам, т. Е. $ _GET [‘details’] ‘как есть’ в любом месте, не экранируя его, из соображений безопасности.
WordPress имеет множество простых в использовании функций escape, таких как esc_attr () а также esc_html ().
Это должно сделать это для вас
<?php
$advert_display_string = "";
if (!isset($_GET['details'])) {
$advert_display_string = "style='display: none'";
}
?>
<div class="advert" <?php echo $advert_display_string ; ?> ></div>`
но, сказав, что вместо того, чтобы отображать его, а затем скрывать с помощью css, вы можете просто выбрать его отображение, если вам это нужно, как показано ниже
<?php
if (isset($_GET['details'])) {
?>
<div class="advert"></div>
<?
}
?>