• Вывод категорий с постами?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Вроде помогло, оформлю в ответ, мошт ещё кому поможет
    $terms_array = array( 
      'taxonomy' => 'services', // you can change it according to your taxonomy
      'parent'   => 0 // If parent => 0 is passed, only top-level terms will be returned
    );
    $services_terms = get_terms($terms_array); 
    foreach($services_terms as $service): ?>
    <h4><?php echo $service->name; ?></h4>
    <?php 
    $post_args = array(
          'posts_per_page' => -1,
          'post_type' => 'service', // you can change it according to your custom post type
          'tax_query' => array(
              array(
                  'taxonomy' => 'services', // you can change it according to your taxonomy
                  'field' => 'term_id', // this can be 'term_id', 'slug' & 'name'
                  'terms' => $service->term_id,
              )
          )
    );
    $myposts = get_posts($post_args); ?>
    <ul>
    <?php foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
      <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
      </li>
    <?php endforeach; // Term Post foreach ?>
    </ul>
    <?php wp_reset_postdata(); ?>
    
    <?php endforeach; // End Term foreach; ?>
    Ответ написан
    4 комментария
  • Автоматическое обрезание картинок Wordpress при загрузке?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    Добрый день.

    Обычные thumbnail и тд не пойдут. Так как они просто уменьшают саму картинку,

    не верю!

    Вариант первый:
    Через настройки в админке


    ❗❗❗ Читаем текст возле галочки ❗❗❗

    60aa1e7dc3047787421884.jpeg

    //получаем в шаблоне:
    $attachment_src=wp_get_attachment_image_src(get_post_thumbnail_id(),'thumbnail');

    Вариант второй:
    //functions.php
    add_filter('wp_handle_upload_prefilter','add_handle_upload');
    if(!function_exists('add_handle_upload')){
    function add_handle_upload($file){
        add_image_size('mysize',600,200,array('center','center'));
        return $file;
    }}
    //получаем в шаблоне:
    $attachment_src=wp_get_attachment_image_src(get_post_thumbnail_id(),'mysize');

    Общий результат

    60aa1f141d0aa741377670.jpeg

    Вариант третий:
    Используем Imagick — отрезаем 100 px сверху и 100 px снизу

    Все тумбнайлы, что создаст движок вп будут обрезаны ибо Мы обрежем исходник, а потом отдаем его вп на обработку
    //functions.php
    add_filter('wp_handle_upload_prefilter','add_handle_upload');
    if(!function_exists('add_handle_upload')){
    function add_handle_upload($file){
        $tmp_name=$file['tmp_name'];
    		$image=new Imagick($tmp_name);
    		$image->chopImage(0,100,0,0);//отрезаем 100 px сверху
    		$imageprops=$image->getImageGeometry();//чтобы отрезать снизу надо узнать высоту и отнять 100 px и уже от нее отрезать все то, что ниже
    		$image->chopImage(0,100,0,$imageprops['height']-100);//отрезаем 100 px снизу
    		$image->writeImage($tmp_name);//перезаписываем временный файл
    
        return $file;
    }}


    60aa732691e7d131364392.png


    з.ы. все возможности Imagick
    Ответ написан
    2 комментария
  • Как защитить api ключи в wordpress?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Вам же четко написали в руководстве. Данные ключи можно использовать только для сервера. Второй вариант они действительно для js и тогда владелец апи должен обеспечить cors с привязкой к вашему домену. Если это все же серверные ключи то создайте на своём сервере файлик php который принимает запросы только от вашего хоста и обращается к апи
    Ответ написан
    1 комментарий
  • Где взять аналог ACF WordPressa для Битрикса?

    rpsv
    @rpsv
    делай либо хорошо, либо никак
    Пути два:
    1. веб-формы
    2. инфоблоки

    При первом у вас все готово (компоненты, логика, даже дизайнер форм).
    При втором - пишите 1 компонент отвечающий за отображение и сохранение форм.

    И тот и другой вариант, занимает меньше времени чем написание вопроса на тостер
    Ответ написан
    5 комментариев
  • Стоит ли пользоваться elementor и wp bakery, или как конкурировать с теми, кто с подвешенным языком и пользуется?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Прочитал пост с месячными.

    Единственный метод долгосрочной конкуренции с кем либо - качество продукта и профессионализм.

    Качество продукта = когда вы четко понимаете что требует бизнес, если это цветочный магазин с небольшой прибылью, у которого на старте банально нет денег на ваш условный магазин на laravel, а вы им его пихаете с умным видом ростовщика - то вы глупый. Скорее всего такому бизнесу для старта поможет банальная тильда или конструктор, а потом уже при росте бизнеса и потребностях - переделывать. Конструкторы это не зло, если сайт на конструкторе за 10 000 р позволяет зарабатывать миллионы при небольших отказах со стороны пользователей, то это 100% решение бизнес задачи.

    Профессионализм = это ваши хард скилы, и софт скилы + умение найти ключик к клиенту и его бизнес задаче.

    Всё.
    Ответ написан
    Комментировать
  • Стоит ли пользоваться elementor и wp bakery, или как конкурировать с теми, кто с подвешенным языком и пользуется?

    Стоит ли идти на их методы, чтобы конкурировать?


    У меня этого нет и не будет, натура не та, хоть что. Вот даже школа профессиональных аферистов бы меня выкинула от бессилия, даже если бы методы были вроде "заморить голодом" или "послать на завод" - я как аферист безнадежен, только все по-честному.


    не видишь противоречий?

    PS по теме: втюхивать человеку откровенную херню - такая себе затея
    а с теми, кто хочет очень быстро, потому что у него горит и за копейки, лучше вообще не работать, себе дороже
    Ответ написан
    Комментировать
  • Стоит ли пользоваться elementor и wp bakery, или как конкурировать с теми, кто с подвешенным языком и пользуется?

    @Xell531
    Работаю в студии уже несколько лет, сам всё организовывал с нуля, учился без всяких курсов, сам, по ютубу. Имею уже достаточно большое портфолио. Поделюсь опытом для Вашего "накипело". Дочитать до конца - меньше половины дела, главное осмыслить.
    Работа есть и есть всегда. Почему?

    Во-первых благодаря именно тому, что в штате есть человек "с подвешенным языком", который умеет убеждать клиента и очень долго с ним общаться, торговаться - у меня на это не хватает ни сил, ни языка, ни терпения. Это рынок! Не умеете - ищите того, что умеет и платите ему!
    Во-вторых - именно гибкий подход, цены и сжатые сроки помогают склонить клиента в пользу нашей студии. Мы используем и Elementor, и BB, и другие конструкторы, но и внедряем достаточно много своего кода, но коды эти наработаны годами и лежат в закладках по принципу копипаста. Получается и быстро, и индивидуально.
    В-третьих именно благодаря тем, кто делает дёшево и как попало - очень много случаев, когда к нам обращаются именно переделать сайт или сделать новый.

    А самое главное - на первом месте грамотно сделанная реклама в Яндекс и Google. Для этого тоже нужен свой специалист, так как съедает это колоссальное количество времени. Именно реклама приводит на сайт посетителей и только на втором месте уже качество сайта. Тут неважно на чём он сделан, главное, чтобы он конвертировал заявки и заказы от посетителей. Самый хороший, быстрый и качественный сайт может быть абсолютно бесполезен, в то время, как сделанный "на коленке" будет приносить прибыль клиенту, а для него это самое главное.

    А теперь скажу Вам самое неприятное - рынку и потенциальным клиентам пофиг, что Вам нравится или не нравится, насколько вы честный, как Вы делаете сайты, какой Вы грамотный специалист, насколько крут и сколько дипломов имеете. Людям нужно дешевле и "ещё вчера". Сейчас Выигрывает не тот, кто умнее, а тот, кто быстрее всех переучивается. Именно 10% знаний приносят 90% результата, и никак не наоборот. Поэтому однозначно стоит осваивать конструкторы и CRM. К тому же, Elementor освоить достаточно легко и быстро.

    Я начинал так же, как и многие. Так же писал в коде. Знаю отлично html, css. Знаю, как считаю, достаточно неплохо php, js, jquery. Работал на Joomla, Drupal, DLE, MODx, всего и не вспомню. Но работаю в конструкторах с этими знаниями. И даже этого опыта не хватает, так как современный рынок требует делать ещё быстрее, а быстрее - значит дешевле.

    Вы должны понимать три вещи:
    1.) Что нужно клиенту.
    2.) Сколько он готов заплатить за работу.
    3.) Во сколько Вы оцениваете свою работу, навыки, знания. (Проще, какую зарплату хотите иметь).
    И исходя из этого выбирать инструменты, которыми будете реализовывать задачу.

    Я всем всегда объясняю, что качественно и дёшево - это в разные стороны и показываю примеры. А дальше уж клиент сам решает, что ему надо.
    А уж если будет результат - Вас сами будут рекомендовать.
    Ответ написан
    Комментировать
  • Почему не работает регулярное выражение?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Смотрите. У вас в файле абзацы по-другому устроены и при копировании они заменяются на виндовый формат.
    Ваш регексп можно чуточку упростить:
    ^(.{0,7})\r\n|^([0-9]{8})\r\n
    Для того, чтобы регексп работал на данном файле с теми абзацами что там есть, нужно использовать \n вместо \r\n.
    Ещё раз...
    В файле абзацы состоят из символа "OA". Ваш регексп в качестве абзацев ожидает пары "OD 0A". При копировании\вставке текста в редакторе в новый файл абзацы заменяются на станартные для данной ОС и данного редактора. Ваш редактор поддерживает юникс-формат абзацев, но по умолчанию использует именно виновый из двух символов. Вы можете сделать регексп универсальным поставив вопросик после символа \r.
    Ответ написан
    6 комментариев
  • Есть тут эксперты или у кого опыт в link building?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    дык какой совет? пинать подчиненных и требовать выработки, завести CRM для контроля - работа-то тупая механическая, + чуть чуть планирования -не забывать оплачивать, и, наоборот, вовремя прекращать оплачивать
    Ответ написан
    Комментировать
  • Лимит при регистрации пользователей в админке?

    Kozack
    @Kozack Куратор тега WordPress
    Thinking about a11y
    А не проще взять более ранний хук аля "wp_pre_insert_user_data". И в нем проверять. Если в данный момент пользователей >= 100 -- выкинуть wp_die() c сообщением о превышении лимита
    Ответ написан
    1 комментарий
  • Почему AJAX поиск выдает один результат а простой поиск другой результат?

    Компьютер это не волшебный ящик. Есть конкретный код на сервере, который отвечает за выдачу результата и есть конкретный код на клиенте. Причина почему AJAX поиск выдает результаты только начиная от трех букв только в том, что так это реализовали или на сервере или на клиенте, или в обоих местах сразу.
    Обычно это делают на клиенте, чтобы не перегружать запросами серверную часть, а на сервере, чтобы не перегружать запросами поисковый движек, если он есть или не делать слишком большую и медленную выборку из БД.
    Вы не пивели в своем вопросе ни серверного кода, ни клиентсокого. Единственный ответ, который можно дать на ваш вопрос это философские рассуждения.
    Ответ написан
    5 комментариев
  • Как получить все домены и поддомены из строки в PHP?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Ответ написан
    Комментировать
  • Почему выскакивает ошибка php in_array() expects parameter 2 to be array?

    DevMan
    @DevMan
    ссылку на гугло или яндек транслейт дать, штоле?
    что может быть не понятного в "нужен массив, а передана строка"?
    Ответ написан
    Комментировать
  • Как добавить условный оператор в цикл wordpress?

    @KingAnton
    <?php if ( $query->found_posts < 3 ) : ?>
    
    <?php else : ?>
    
    <?php endif; ?>
    Ответ написан
    1 комментарий
  • Непонятная дичь на сайтах с одного хостинга. wp-signups.php что происходит?

    Vindicar
    @Vindicar
    RTFM!
    Обычный заобфусцированный шеллкод.
    В конце кода видно обращение к curl, а потом fopen()+fwrite() - т.е. шелл умеет скачивать содержимое с указанного URL и записывать его в указанный файл на заражённом хостинге, предположительно для дальнейшего исполнения.

    delphinpro в комментариях правильно написал: проверяйте дату изменения файлов (если хакер ленивый, он её не подправил и заражённые файлы будут новее), удаляйте шелл код отовсюду.
    Я ещё добавлю: читайте логи вебсервера на предмет запросов к заражённым файлам, ищите хосты, которые обращались (наверняка китайские прокси). Потом ищите все запросы с этих хостов - если повезёт, поймёте как вас поломали. И в любом случае обновляйте вордпресс на последнюю версию, если это ещё не так.
    Ответ написан
    2 комментария
  • Непонятная дичь на сайтах с одного хостинга. wp-signups.php что происходит?

    profesor08
    @profesor08 Куратор тега PHP
    1. Смотри где раньше появился файл, это и будет дырявый сайт.
    2. Смотри логи, может повезет и увидишь откуда обращаются к файлу, а там увидишь и куда еще обращаются с того адреса. Так поймешь, где примерно искать дыру.
    Ответ написан
    Комментировать
  • Непонятная дичь на сайтах с одного хостинга. wp-signups.php что происходит?

    @kot999
    Backend software engineer
    Сайт взломан, залит какойто зловред.
    Возможно он не один,
    1. нужно найти и устранить уязвимость через которую он был залит
    2. Вычистить зловреда.
    Ответ написан
    Комментировать
  • Как из двух массивов образовать новый, взяв часть данных?

    0xD34F
    @0xD34F
    Такое вообще возможно?

    Нет, блин. Невозможно.

    $items = array_combine(
      array_column($arr2['entries'], 'name_item'),
      $arr2['entries']
    );
    
    $keys = [ 'price_item', 'image_item' ];
    
    foreach ($arr1 as $n) {
      foreach ($keys as $k) {
        $n[$k] = $items[$n[0]][$k];
      }
    
      $arr3[] = $n;
    }

    Ответ написан
    Комментировать