Задать вопрос
Занимаюсь этим с 2020 года,
Местоположение
Россия

Наибольший вклад в теги

Все теги (17)

Лучшие ответы пользователя

Все ответы (32)
  • Как сделать так чтобы в input нельзя было вводить меньше 5?

    @awenn2015
    Веб-разработчик самоучка
    Можно через событие onBlur валидировать

    const Input = () => {
      const range = { min: 5, max: 50 }
      const [value, setValue] = useState<number | "">(range.min)
    
      function onBlurHandle(value: number) {
        if (value >= range.min && value < range.max) return;
        setValue(range.min)
      }
    
      return (
        <input
          type="number"
          value={value}
          onChange={({ target }) => setValue(target.value === "" ? "" : +target.value)}
          onBlur={({ target }) => onBlurHandle(+target.value)}
          min={range.min}
          max={range.max}
        />
      )
    }
    Ответ написан
    Комментировать
  • Как добавить несколько get параметров в url без перезагрузки страницы?

    @awenn2015
    Веб-разработчик самоучка
    Понимаю что поздно но мне тоже нужна была похожая штука, так что я смастерил это

    const url = new URL(window.location.href)
    url.searchParams.append("afterSending", "1")
    window.history.pushState(null, null, url);
    
    // window.location.href = url.toString()
    // window.location.replace(url.toString())
    Ответ написан
    Комментировать
  • Как передать значение переменной между файлами шаблона на wordpress?

    @awenn2015
    Веб-разработчик самоучка
    Смотрю вот ответы то хорошие, но что делать когда файл шаблона, например файл со script тегом который мы через хук wp_footer цепляем к странице, что бы не дублировать запросы к бд хорошей идей является как упомянул Mario62 передавать данные через $GLOBALS
    Ответ написан
    Комментировать
  • Как сортировать записи по двум полям в sql запросе, обычному и произвольному без фильтрации?

    @awenn2015 Автор вопроса
    Веб-разработчик самоучка
    А все, в phpmyadmin на тыкал по колонкам как нужно, даже и думать не пришлось и получился такой вариант

    SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_date, wp_postmeta.meta_value FROM wp_posts 
    LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = 'pinned' 
    WHERE wp_posts.post_type = 'partners' 
    ORDER BY `wp_postmeta`.`meta_value` DESC, `wp_posts`.`ID` DESC LIMIT 25


    Хоть он конечно и не покрывает 100% задачу так как тут сортировка все равно общая какая то получается, мы сначала поднимает закрепленные а потом сортируем всё по ID, хотелось бы иметь возможность сортировать отдельно поднятые и все остальные по разному

    ============ UPDATED ============

    За два дня поисков нашел еще такой вариант, в целом тоже работает и отвечает на 1-ую часть задания, тут я уже сам себе признал что так себе знал о всех доступных способах указания аргументов в WP_Query, так как до этого в основном пользовался только стандартными кейсами

    $posts_query = new WP_Query([
      'paged' => $paged,
      'post_type' => 'post',
      'post_status' => 'publish',
      'suppress_filters' => true,
      'posts_per_page' => $posts_per_page,
      'meta_query' => [
        'relation' => 'OR',
        'pinned_clause' => [
          'key' => 'pinned',
          'compare' => 'EXISTS',
        ],
      ],
      'orderby' => [
        'pinned_clause' => 'DESC',
        'ID' => 'DESC',
      ],
    ]);


    Осталось найти способ как выполнить 2-ую часть задания, хотя предполагаю что можно где то в цикле после того как отрисовал закрепленные менять query параметр orderby на нужный, главное отловить тот момент когда идут не закрепленные, наверно по кол-ву можно брать, заранее посчитать сколько всего закрепленных и после в цикле уже проверять

    Далее по всей видимости нужно изучать как делать сложные meta_query что бы комбинировать relation по типу этого

    $post_query = new WP_Query([
      // ...
      'meta_query' => [
        'relation' => 'AND',
        [
          'relation' => 'OR',
          'pinned_clause' => [
            'key' => 'pinned',
            'compare' => 'EXISTS',
          ],
        ],
        [
          'relation' => 'AND',
          [
            'key' => 'acf_field_1',
            'value' => 'filtering_value_1',
          ],
          [
            'key' => 'acf_field_2',
            'value' => 'filtering_value_2',
          ],
        ],
      ],
    ]);
    Ответ написан
    Комментировать
  • Как сделать чтобы Заголовок и задача были один под одним?

    @awenn2015
    Веб-разработчик самоучка
    Имеешь ввиду одной ширины что ли ? Добавь классы и дай одну ширину, можно конечно с bootstrap поиграть а можно нативно flexами задать
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (41)