• Как вывести товары в Woocommerce группами?

    DrZhmurge
    @DrZhmurge Автор вопроса
    Использовал плагин "Woocommerce Advanced Categories". Дополнительно нужен "Redux Framework" плагин. Там есть функция "Nested Categories", которая позволяет выводить информацию о категории перед товарами этой категории в каталоге. Дальше просто стилями скрыл все что мне не нужно и оставил название категории.
    Ответ написан
    Комментировать
  • Как найти нужный файл в теме WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!

    Нужно найти файл в теме Wordpress


    Вариант 1
    Если это поможет, то воспользуйтесь плагином Query Monitor. Он покажет используемый шаблон на текущей странице. Возможно, что он покажет общий шаблон - например, page.php, в котором в свою очередь будут другие шаблоны (template parts). Тогда просто пройдите по логической цепочке до обнаружения нужного шаблона

    Вариант 2
    Скачайте все файлы темы, откройте текстовой редактор (Sublime Text 3, Notepad++ или даже IDE - например, PhpStorm). Поищите строки, который могут содержаться в вашем шаблоне. Это может быть css класс, html теги, текст и т.д. Для удобоного поиска по всем шаблонам используйте ctrl + shift + f (sublime text 3). При надобности исопльзуйте regex.

    Может кто подскажет алгоритм как это сделать или где он может находиться

    алгоритмы поиска дал выше. А вот, где может находится, тут не подскажу. Может быть этот функционал реализован плагином и тогда ищите шаблоны в плагинах, фреймворке и т.д.
    Ответ написан
    2 комментария
  • Как парсить json файл в jquery?

    Stalker_RED
    @Stalker_RED
    Парсинг тут не при чем.

    Написано же красным по белому: у вас сайт на https, а ресурс вы запрашиваете по протоколу http. Небезопасно, запрос заблокирован.

    Хоть в гуглтранслейт ошибки копируйте, что-ли.
    Ответ написан
    Комментировать
  • Как сделать выбор конкретного элемента среди одинаковых селекторов jq?

    0xD34F
    @0xD34F Куратор тега JavaScript
    document.addEventListener('click', function(e) {
      const item = e.target.closest('.preliminary-item');
      if (item) {
        [ 'name', 'quantity', 'proximity' ].forEach(function(n) {
          const html = `<p>${item.querySelector(`.request-${n}`).textContent}</p>`;
          document.querySelector(`.result-${n}`).insertAdjacentHTML('beforeend', html);
        });
      }
    });

    или

    $('.preliminary-item').click(function() {
      $.each([ 'name', 'quantity', 'proximity' ], (i, n) => {
        $(`.result-${n}`).append(`<p>${$(`.request-${n}`, this).text()}</p>`);
      });
    });
    Ответ написан
    1 комментарий
  • Как сделать что бы каждая следующая полоска была больше предыдущей?

    @fixeri
    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    	<style type="text/css">
    		.block {
    			width: 190px;
    			height: 40px;
    			background-color: red;
    			border: 1px solid black;
    		}
    	</style>
    </head>
    <body>
    	<div class="block"></div>
    	<div class="block"></div>
    	<div class="block"></div>
    	<div class="block"></div>
    	<div class="block"></div>
    	<div class="block"></div>
    
    	<script type="text/javascript">
    		"use strict";
    		
    		let blocks = Array.from(document.querySelectorAll(".block"));
    		let widthBlock = getComputedStyle(blocks[0]).width.slice(0, -2);
    		for (let i = 0; i < blocks.length; i++) blocks[i].style.width = +widthBlock + 20 * i + "px";
    	</script>
    </body>
    </html>
    Ответ написан
    1 комментарий
  • Как сделать сортировку блоков div по тексту внутри?

    mosesfender
    @mosesfender
    Меланхолик, параноик, падал с коек
    В JavaScript есть в прототипе массива традиционная для всех функция sort().
    Для примера сделаем такую табличку:
    <a href="javascript:" data-sort="alphabet">sort by alpabet</a>
    <a href="javascript:" data-sort="amount">sort by amount</a>
    
    <div id="lst">
        <div><span>jsghgori</span><span>345</span></div>
        <div><span>ouerok</span><span>98</span></div>
        <div><span>qiewhfh</span><span>548</span></div>
        <div><span>nvxcmk</span><span>234</span></div>
        <div><span>kefoo</span><span>38</span></div>
    </div>


    Теперь напичкаем её функционалом для сортировки и рисования:
    <script>
        var lst = document.getElementById('lst');
        Object.defineProperties(lst, {
            _direct: {
                /**
                 *  Направление сортировки
                 *  0 - a->z
                 *  1 - z->a
                 */
                value: 0,
                writable: true
            },
    
            direct: {
                get: function () {
                    return this._direct;
                },
                set: function (val) {
                    this._direct = Math.abs(this._direct - 1);
                },
                enumerable: true,
                configurable: true
            },
            _dataArr: {
                /* Массив с данными */
                value: [],
                writable: true,
            },
            data: {
                /* Получить массив с данными */
                get: function () {
                    let _that = this;
                    if (!this._dataArr.length) {
                        /* Если массив пуст, получим данные */
                        [].map.call(this.children, function (_row) {
                            let _dataRow = {
                                title: _row.children[0].innerHTML,
                                amount: parseInt(_row.children[1].innerHTML),
                                element: _row
                            }
                            _that._dataArr.push(_dataRow);
                        });
                    }
                    /* В любом случае возвертаем массив */
                    return this._dataArr;
                }
            },
            sortByAlphabet: {
                value: function () {
                    let _that = this;
                    this.data.sort(function (a, b) {
                        if (_that.direct) {
                            return a.title > b.title ? 1 : -1;
                        } else {
                            return a.title > b.title ? -1 : 1;
                        }
                    });
    
                    this.direct = true;
                    this.drawRows();
                },
                writable: false
            },
            sortByAmount: {
                value: function () {
                    let _that = this;
                    this.data.sort(function (a, b) {
                        if (_that.direct) {
                            return a.amount > b.amount ? 1 : -1;
                        } else {
                            return a.amount > b.amount ? -1 : 1;
                        }
                    });
                    this.direct = true;
                    this.drawRows();
                },
                writable: false
            },
            drawRows: {
                value: function () {
                    for (let i = 0; i < this.data.length; i++) {
                        this.appendChild(this.removeChild(this.data[i].element));
                    }
                },
                writable: false
            }
        });
        document.addEventListener('click', function (ev) {
            if (ev.target.hasAttribute('data-sort')) {
                switch (ev.target.getAttribute('data-sort')) {
                    case 'alphabet':
                        lst.sortByAlphabet();
                        break;
                    case 'amount':
                        lst.sortByAmount();
                        break;
                }
            }
        });
    </script>


    Весь цимес в lst.sortByAlphabet() и lst.sortByAmount(). То есть, sort() внутри себя перебирает все элементы массива со своим соседом, передавая их в аргументах, чем мы и пользуемся для сравнения их. Что сравнивать, решаем сами.
    Ответ написан
    1 комментарий
  • Почему не получается сделать несколько всплывающих окон?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    они не работают без js. Одно, два, миллион - если только html - работать не будет.
    Ответ написан
    Комментировать
  • Что значат эти ошибки?

    dimmond_pro
    @dimmond_pro
    Jedi
    Это несвязано с совместимостью библиотек, все, что здесь написано говорит о том, что каждый из плагинов jquery не может прочитать/записать значение, потому что получают undefined там, где его не должно было бы быть. Проверьте зависимости, скорее всего вы просто что-то не перенесли или не установили, возможно jquery и была не установлена
    Ответ написан
    Комментировать
  • Как вывести ACF в футере для всех страниц, введя 1 раз?

    @id_baton4eg
    работает на ACF PRO
    Сначала добавим страницу Параметров в админке:
    Добавим страницу настроек
    if( function_exists('acf_add_options_page') ) {
    	$args = array(
    		'page_title' => 'Параметры',
    		'menu_title' => '',
    		'menu_slug' => 'Options',
    		'post_id' => 'options',
    	);
    	acf_add_options_page( $args );
    }


    Выводить с неё указывая вторым параметром её id
    echo get_field('phone','options');
    Ответ написан
    1 комментарий
  • WordPress не дает установить шаблон (В теме отсутствует таблица стилей style.css)?

    a1exDi
    @a1exDi
    Geek
    Я в таких ситуациях самостоятельно загружаю в корень темы файл style.css по стандартному шаблону WordPress - https://developer.wordpress.org/themes/basics/main...
    Ответ написан
    Комментировать