Задать вопрос
  • Как реализовать всплытие наверх комментариев?

    @ligisayan Автор вопроса
    Это ответ на мой вопрос
    Ответ написан
    Комментировать
  • Как просуммировать строки в шорткоде wordpress?

    @ligisayan Автор вопроса
    Моя задача решается с помощью буферизации вывода ob_start() - ob_get_clean()
    function shortcode_function() {
    ob_start();
    	$args = array(
    	'numberposts' => 5,
    	'category'    => 0,
    	'orderby'     => 'date',
    	'order'       => 'DESC',
    	'meta_key'    => '',
    	'meta_value'  =>'',
    	'post_type'   => 'movies',
    	'suppress_filters' => true,
    );
    
    $posts = get_posts( $args );
    $cont = 0;
    
    foreach( $posts as $post ){ 
    setup_postdata($post); 
     ?>
    <li><a href="<?php echo $post->guid; ?>"><?php echo $post->post_title; ?></a></li>
    
    <?php }
    $cont = ob_get_clean();
    	return $cont;
    
    }
    add_shortcode( 'show_films', 'shortcode_function' );
    Ответ написан
    Комментировать
  • Есть ли рабочая схема замены класса bootstrap 4 my-auto в ie10-11?

    @ligisayan Автор вопроса
    Павел спасибо! Вот этот вариант Сработал. Статья помогла
    /* Internet Explorer 10+, Microsoft Edge Browser */
    
    _:-ms-lang(x),   .my-auto {
       margin-top:100px !important;
      }
    Ответ написан
    Комментировать
  • Хочу сделать валидацию и отправку формы на чистом css+js, но почему получаю ошибки?

    @ligisayan Автор вопроса
    Пришел самостоятельно к такому итоговому решению, может быть кому-либо пригодится тоже.
    <link href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" rel="stylesheet"/>
    <form method="POST" name="f" id="form" action="" onsubmit="return false;">
      <p><input type="text" placeholder="Name" name="name" oninput="InputName(this.value)"><i class="fas fa-check-circle" id="circle-ok-1"></i></p>
      <p><input type="email" placeholder="Email" name="email" oninput="InputEmail(this.value)"><i class="fas fa-check-circle" id="circle-ok-2"></i></p>
      <p><input type="tel" placeholder="Phone" name="phone" oninput="InputPhone(this.value)"><i class="fas fa-check-circle" id="circle-ok-3"></i></p>
      <p><textarea placeholder="Message" name="message" id="form-control" rows="3" oninput="Textarea(this.value)"></textarea><i class="fas fa-check-circle" id="circle-ok-4"></i></p>
      <label id="sending">Sending...</label>
      <input type="submit" value="Send Message" onclick="sendForm(); return false;" />
    </form>

    function InputName(value) {
      if (value != '') {
        document.getElementById("circle-ok-1").style.display = "block";
      } else {
        document.getElementById("circle-ok-1").style.display = "none";
      }
    }
    
    function InputEmail(value) {
      let email = value;
      if (email.length > 0 && (email.match(/.+?\@.+/g) || []).length !== 1) {
        document.getElementById("circle-ok-2").style.display = "none";
      } else {
        document.getElementById("circle-ok-2").style.display = "block";
      }
    }
    
    function InputPhone(value) {
      let regExp = /^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/g;
      var phone = value.match(regExp);
      if (phone) {
        document.getElementById("circle-ok-3").style.display = "block";
      } else {
        document.getElementById("circle-ok-3").style.display = "none";
      }
    }
    
    function Textarea(value) {
      if (value != '') {
        document.getElementById("circle-ok-4").style.display = "block";
      } else {
        document.getElementById("circle-ok-4").style.display = "none";
      }
    }
    
    function sendForm() {
      document.getElementById("sending").style.opacity = 1;
    }

    form {
      width: 1100px;
      max-width: 100%;
    }
    
    form input,
    form textarea {
      box-sizing: border-box;
      width: 100%;
      background: transparent;
      border: 1px solid #8e908f;
      padding: 10px;
      font-size: 20px;
    }
    
    form p {
      position: relative;
    }
    
    form p i.fas {
      position: absolute;
      right: 15px;
      top: 15px;
      display: none;
    }
    
    form p .fa-check-circle:before {
      color: green;
    }
    
    form textarea {
      height: 100px;
    }
    
    form input:focus,
    form textarea:focus {
      outline-color: #ffc300;
    }
    
    form input {
      height: 50px;
    }
    
    form input[type="submit"] {
      border: none;
      background-color: #bb9300;
      color: #000;
      text-transform: uppercase;
      font-weight: bold;
      transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    }
    
    form input[type="submit"]:hover {
      background-color: #ffc300;
      cursor: pointer;
      -webkit-transition: opacity 300ms ease-out;
      transition: opacity 300ms ease-out;
    }
    
    form ::placeholder {
      color: #8e908f;
    }
    
    #sending {
      display: block;
      text-align: center;
      padding: 15px;
      font-size: 16px;
      color: #8e908f;
      opacity: 0;
    }
    Ответ написан
    Комментировать
  • Как в wordpress создать интерактивную гугл карту с закрашенными областями?

    @ligisayan Автор вопроса
    Ответ на мой вопрос в реализации Visualization: GeoChart API.
    Ответ написан
    Комментировать
  • Как перенести wordpress сайт с локального сервера на хостинг с https?

    @ligisayan Автор вопроса
    Дело в сертификате сервиса Cloudflare.
    Плагин CloudFlare Flexible SSL решил проблему.
    Ответ написан
    Комментировать
  • Почему не все страницы правильно отображаются по https?

    @ligisayan Автор вопроса
    Нашел решение - в wp-config.php прописал следующее:
    $_SERVER['HTTPS']='on';
    и в файле .htaccess

    RewriteEngine on
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
    RewriteCond %{SERVER_PORT} !^443
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ https://yourdomain.by%{REQUEST_URI} [R=301,L]
    RewriteCond %{HTTP:X-SSL-Emu} !on
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    Ответ написан
    2 комментария
  • Как заменить конструкцию query_posts на get_posts?

    @ligisayan Автор вопроса
    Пагинация заработает при выполнении такого условия:
    For getting the current pagination number on a static front page (Page template) you have to use the 'page' query variable: Ссылка на источник

    if ( is_front_page() ) {
            $paged = (get_query_var('page')) ? get_query_var('page') : 1;   
        } else {
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
        }
    Ответ написан
    Комментировать
  • Как в wordpress организовать вывод только родительских категорий произвольных типов?

    @ligisayan Автор вопроса
    Помогла статья - решил так:
    <span class="dashicons-before folder"><?php  
    		$categories = get_the_terms( $post->ID, APP_TAX_CAT ); 
    		foreach ($categories as $category) {
    			if(!$category->parent) 
    			{
    				echo "<a href='/ad-category/".urlencode(mb_strtolower($category->name)). "/' rel='tag' class='cp-fixed-color'>". $category->name. "</a>";
    			}
    		}
    		?></span>
    Ответ написан
    Комментировать
  • Какие посоветуете плагины для создания собственных типов записей с миниатюрами?

    @ligisayan Автор вопроса
    Протестировал - разобрался.. Плагин не совместим с темой ClassiPress. Приходится ее выключать, а потом заново включать, чтобы иметь возможность добавить новую таксономию. (причем, краткий заголовок нужно указывать только латиницей - начинает ругаться только при отлюченной теме ClassiPress)
    Ответ написан
    Комментировать
  • Как исключить мета поле в запросе get_posts?

    @ligisayan Автор вопроса
    Павел подсказал итоговое решение
    $args = array(
        'post_type' => APP_POST_TYPE,
        'ignore_sticky_posts' => true,
        'meta_query' => array( 
                         'relation' => 'AND',
          array('key' => 'cp_category', 
                'value' => 'Шины', 
                'compare' => '!='
     			      ),
                            array('key' => 'cp_new', 
                'compare' => 'NOT EXISTS'
     			      )
             ), 
    );
    
    $categories = get_posts( $args );
    Ответ написан
    Комментировать
  • Почему при шаринге с сайта в фейсбук отправляется картинка другой новости?

    @ligisayan Автор вопроса
    По всей видимости, ошибку нашел - заменил url корня сайта на url конкретной страницы и еще написал тип контента в зависимости от страницы
    <?php if (is_single()) { ?> 
    <meta property="og:type" content="article" />
    <?php } else { ?> 
    <meta property="og:type" content="website" />  
    <?php } ?> 
    <meta property="og:url"  content="<?php the_permalink(); ?>">
    Ответ написан
    Комментировать
  • Как передать группу значений checkbox в форме?

    @ligisayan Автор вопроса
    Ошибка преобразования была в том, что передавался объект данных, с которым таблица не умела работать - решил несколько по другому, чем в предыдущем примере
    var checkbox="";
        var keys = Object.keys(form['checkbox_name[]']);
    
        keys.forEach(function(item) {
          checkbox += (form['checkbox_name[]'][item]+', ');
        });
    Ответ написан
    Комментировать
  • Почему не отображаются файлы в библиотеке wordpress?

    @ligisayan Автор вопроса
    Все оказалось банально - место на хостинге переполнилось
    Ответ написан
    Комментировать
  • Как верстать макет с плотностью пикселей 150 на дюйм?

    @ligisayan Автор вопроса
    Нужно было в настройках изображения изменить количество точек на дюйм сняв при этом галочку с ресамплинга
    c711e5cf8c784e19b979bb8d56f2fa7f.png
    Ответ написан
    Комментировать
  • Как при удалении последнего товара переадресовывать на шаблон с пустой корзиной?

    @ligisayan Автор вопроса
    Нашел решение - привязался к триггеру updated_wc_div

    $('body').on('updated_wc_div',function() {
       location.reload(); // uncomment this line to refresh the page.
    });
    Ответ написан
    Комментировать
  • Как избавиться от уведомления "товар удален. отменить?"?

    @ligisayan Автор вопроса
    Сработало только скрытие по полному пути в стилях
    .site-content>.col-full>.woocommerce>.woocommerce-message {
    	display: none!important;
    }
    Ответ написан
    Комментировать
  • Как расширить фон шапки таблицы за ее пределы?

    @ligisayan Автор вопроса
    Решение через дополнительное позиционирование блока на всю ширину - фидл
    <div class="yellow"></div>
    <div class="col-full">
    <table class="shop_table shop_table_responsive cart woocommerce-cart-form__contents" cellspacing="0">
      <thead>
        <tr>
          <th class="product-thumbnail">
            <h1 class="entry-title">Корзина</h1>
          </th>
          <th class="product-name">Обработка заказов производится<br>с 09:00 до 18:00</th>
          <th class="product-subtotal">Итого</th>
          <th class="product-remove"><button>Оформить заказ</button></th>
        </tr>
      </thead>
      <tbody>
        <tr class="woocommerce-cart-form__cart-item cart_item">
          <td class="product-thumbnail">
            thumbnail
          </td>
          <td class="product-name" data-title="Товар">
            Товар
          </td>
          <td class="product-subtotal" data-title="Итого">
            Итого
          </td>
          <td class="product-remove">
            Удалить эту позицию</td>
        </tr>
      </tbody>
    </table>
    </div>

    .col-full {
      position:relative;
      z-index:999;
      width: 980px;
      margin-right:50px;
      margin-left:50px;
    }
    .yellow {
          position: absolute;
        width: 100%;
        height: 82px;
        background-color: yellow;
        z-index: 1;
    }
    thead {
      background-color:yellow;
    }
    Ответ написан
  • Есть ли способ удалить функцию с хука wordpress?

    @ligisayan Автор вопроса
    Решение найдено! Нужно удалять хук через подключение хука инициализации init
    add_action( 'init', 'jk_remove_storefront_header_search' );
    function jk_remove_storefront_header_search() {
    remove_action( 'storefront_header', 'storefront_product_search', 40 );
    }


    Вот, кстати, интересная статья по этому вопросу
    remove_action или remove_filter не работает в дочерней теме WordPress, если пытаться удалить хуки родительской темы
    В родительской теме определен ряд хуков, которые мешают мне и хочется их удалить в дочерней теме.
    Логично предположить что нужно просто вставить remove_action или remove_filter в function.php дочерней темы.
    Но не тут то было!
    Это не работает.
    Как оказывается, function.php дочерней темы грузится перед тем же файлом родительской темы. И если использовать обычную схему, то получится что попытка удаления хука произойдет перед его добавлением. Что как мы знаем по кодексу оказывается безрезультатным.
    Таким образом нам нужно добиться ситуации, когда удаление хука произойдет после его определения.
    Как это сделать?
    Все очень просто Нужно удаление хука зацепить на более поздний хук, который выполнится после определения хука родительской темы. О как
    Но все просто. Самый элементарный хук init вполне нам подойдет.
    И делаем так:
    add_action('init','removeOldFunction');
    function removeOldFunction(){
    remove_action( 'template_redirect', 'alienship_nice_search_redirect' );
    }

    Этим кодом мы удалим хук alienship_nice_search_redirect, который определен в родительской теме, при помощи function.php дочерней.
    Проверено
    Все хорошо, пока дело не касается сайдбара. Там хук инициализации виджетов работает еще позднее чем init, потому нужно вешаться на хук after_setup_theme.
    Ну и в других случаях. Удаляя тот или иной хук не забудьте проверить его порядок загрузки и убедиться что он грузится позднее, чем тот который вы удаляете.
    Ответ написан
    Комментировать
  • Почему не работает функция вывода шорткода wordpress do_shortcode()?

    @ligisayan Автор вопроса
    Всю карусель рказывается перекрывает .onepage-section:before а сам код карусели рабочий
    Ответ написан
    Комментировать