• Пропадают стили при выходе с админки Wordpress?

    @denbol
    Когда авторизован в админке, то плагин кэширования на просмотре сайта не работает.
    Если у вас установлен плагин кэширования, то добавьте ваш файл стилей в исключение.
    Ответ написан
    Комментировать
  • Как правильно выводить посты с разной вёрсткой?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Например, вы можете проверять порядковый номер цикла и подключать нужный шаблон

    if ( $query->have_posts() ) {
    	$i = 1;
    	while ( $query->have_posts() ) {
    		$query->the_post();
    		
    		if ( $i == 1 ) {
    			get_template_part( 'templates/template-one' ); // первый
    		} elseif( $i == 2 ) {
    			get_template_part( 'templates/template-two' ); // второй
    		} else {
    			get_template_part( 'templates/template-common' ); // остальные
    		}
    
    		$i++;
    	}
    } else {
    	// Постов не найдено
    }
    Ответ написан
    Комментировать
  • Как сделать вывод данных из объекта в определённом порядке?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Перезаписываем разметку:

    wrapper.innerHTML = Array
      .from(word.value, n => obj[n] ? `<img src="${obj[n]}">` : '')
      .join('');

    Или, удаляем существующие узлы и создаём новые:

    for (let n = null; n = wrapper.lastChild; n.remove()) ;
    
    for (const n of word.value) {
      if (obj.hasOwnProperty(n)) {
        const img = new Image;
        img.src = obj[n];
        wrapper.append(img);
      }
    }
    
    // или
    
    wrapper.replaceChildren(...Array.prototype.reduce.call(
      word.value,
      (acc, n) => (
        obj[n] && ((acc[acc.length] = new Image).src = obj[n]),
        acc
      ),
      []
    ));

    Или, удаляем лишние/создаём недостающие узлы:

    while (word.value.length < wrapper.children.length) {
      wrapper.removeChild(wrapper.lastElementChild);
    }
    
    while (word.value.length > wrapper.children.length) {
      wrapper.appendChild(document.createElement('img'));
    }
    
    Array.prototype.forEach.call(wrapper.children, (n, i) => {
      const src = obj[word.value[i]];
      if (!(n.hidden = !src)) {
        n.src = src;
      }
    });

    Конечно, вопрос был про другое, но это просто чудовищно:

    let obj = {
        'а': 'https://github.com/itsFide/converter/blob/master/img/а.png?raw=true',
        'А': 'https://github.com/itsFide/converter/blob/master/img/а.png?raw=true',
        'б':'https://github.com/itsFide/converter/blob/master/img/б.png?raw=true',
        ...

    Давайте-ка сократим:

    const obj = Object.fromEntries(Array.prototype.flatMap.call(
      'абвгдеёжзийклмнопрстуфхцчшщъыьэюя', n => {
        const url = `https://github.com/itsFide/converter/blob/master/img/${n}.png?raw=true`;
        return [
          [ n,               url ],
          [ n.toUpperCase(), url ],
        ];
      }
    ));
    Ответ написан
    1 комментарий