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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • Как лучше реализовать фильтрацию woocommerce?

    @joginzbajin
    Не совсем понятен вопрос...
    Но, если не нравится родной фильтр, то попробуйте:

    WOOF - WooCommerce Products Filter
    annasta Woocommerce Product Filters
    Ответ написан
    Комментировать
  • Как включить плагин wordpress не в админке?

    @cema93
    WordPress разработчик
    Информацию о том, какие плагины включены, а какие нет, WordPress хранит в таблице wp_options, в массиве active_plugins, так что всё, что нам потребуется, это изменить его содержимое.

    Функция активации плагинов
    function true_plugins_activate() {
    	if ( $active_plugins = get_option('active_plugins') ) { // вытаскиваем массив с активными плагинами
    		$activate_this = array( // в массиве перечисляем плагины которые хотим включить, путь к файлу плагина относительно папки plugins, о том как его узнать, написано ниже
    			'hello.php', // например Hello Dolly
    			'wp-pagenavi/wp-pagenavi.php' // и плагин списка страниц
    		);
    		foreach ( $activate_this as $plugin ) {
    			if ( ! in_array( $plugin, $active_plugins ) ) {
    				array_push( $active_plugins, $plugin );
    				update_option( 'active_plugins', $active_plugins );
    			}
    		}
     
    	}
    }
     
    add_action( 'admin_init', 'true_plugins_activate', 10 );
    Ответ написан
    Комментировать
  • Почему первый div(либо другой элемент) не отображается в wordpress?

    Adamos
    @Adamos
    Если в верстке пропадает первый элемент, значит, перед ним открыт и не закрыт тег, кавычки или что-то подобное. Легко определяется, если посмотреть исходник страницы в том же браузере. А уж где у вас там в WP такой косяк, в каких шаблонах - это разбирайтесь сами.
    Ответ написан
    Комментировать
  • Не подключаются файлы дочерней темы wordpress?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    вносить изменения в дочерние файлы по тому же пути можно только в темплейты. не в классы
    Ответ написан
    Комментировать
  • При отправке формы постом число уходит не коректное. В чем проблема?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    Потому что у вас аж 6 инпутов с именем range и как раз в первом значение 100. используйте id уникальные
    6244a87ee8404750762074.png
    Ответ написан
    9 комментариев
  • Удаление в массиве по значению другого массива?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Устественно для фильтрации массива использовать array_filter:
    $res = array_filter(
    	$arr,
    	fn($el)=>!in_array($el["uniq_id"], $filter)
    );
    Ответ написан
    1 комментарий
  • Насколько важна dpi мыши для дизайна и моделирования?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Устройства ввода - это комфорт пользователя.
    Это может быть важно ДЛЯ ВАС (если вы конечно способны уловить разницу между высоким и низким dpi мышки).
    "Дизайн и моделирование" - это продукт головы, а не рук.
    Ответ написан
    Комментировать
  • Кто должен делать сайт по прототипам — дизайнер или верстальщик?

    @Kvason
    Веб-разработчик
    Хороший верстальщик может быть плохим дизайнером, из-за этого многие проекты одного человека выглядят некрасиво. Если ты наймешь другого верстальщика нет никакой гарантии что это хороший дизайнер. Бек и фронт часто заказывают у одного человека, но дизайн все равно у дизайнера, потому что это две по сути абсолютно несвязанные (в плане продукта производства) профессии. Закажите макет у дизайнера и будет Вам счастье
    Ответ написан
    Комментировать
  • Кто должен делать сайт по прототипам — дизайнер или верстальщик?

    AlexBrWEs
    @AlexBrWEs
    Sport Press
    Фронт прав.
    Это два очень разных направления работы.
    1.Веб-диз делает диз.
    2.Фронт по этому дизу кроит верстку.

    Редко, когда фронт хориший диз, еще реже когда диз вообще верстает)).
    Ответ написан
    Комментировать
  • Можно ли хранить sitemap.xml в подпапках домена?

    rc-dm
    @rc-dm
    Full-Stack Web Developer
    Ты можешь указать в robots.txt где лежит твой sitemap.
    Кроме того, sitemap может быть несколько.

    Пример robots.txt с указанием адреса sitemap.xml
    User-agent: *
    Allow: /
    Sitemap: https://site.ru/sitemap.xml
    Sitemap: https://site.ru/moscow/sitemap.xml


    Поисковик работает только с одним robots.txt, находящимся в корне сайта
    (https://example.com/robots.txt)

    Какие существуют требования к robots.txt:
    • Размер файла не превышает 500 КБ
    • Это TXT-файл с названием robots.txt
    • Файл должен быть размещен в корневом каталоге сайта
    • Файл должен быть доступен для роботов — сервер, на котором размещен сайт, отвечает HTTP-кодом со статусом 200 OK
    • Можно указать до 500 штук файлов sitemap.xml, до 50 000 ссылок в каждом из них


    Какие существуют требования к sitemap.xml:
    • Файл должен быть в кодировке UTF-8
    • Максимальное количество ссылок — 50 000 (О том как разделить большой sitemap.xml написано выше)
    • Максимальный размер файла в несжатом виде — 50 МБ
    • Указывайте ссылки на страницы только того домена, на котором будет расположен файл
    • Разместите файл на том же домене, что и сайт, для которого он составлен
    • При обращении к файлу сервер должен возвращать HTTP-код 200
    Ответ написан
    5 комментариев
  • Возможно ли сделать навигацию по заголовкам записи в wordpress?

    @UmniyParen Автор вопроса
    Плагин "Table of Contents Plus", автоматически генерирует то что нужно
    Ответ написан
    Комментировать
  • Как слделать не обновляймы header.рhp при переходе по ссылке?

    IIIu6ko
    @IIIu6ko
    Я делал с помощью https://barbajs.org/
    Называется всё это дело PJAX.

    Можно как с анимацией, так и без. Погуглите что-то в духе "wp pjax".
    Ответ написан
    4 комментария
  • Почему wp_upload_dir обрезает названия папок с символами?

    Immortal_pony
    @Immortal_pony
    Первый параметр, который принимает wp_upload_dir() это $time, а возвращает он всегда массив.
    Что ты пытаешься сделать вообще?

    Пальцем в небо, тебе нужна папка для каждого чата? Ну тогда как-то так можно сделать:
    function findOrCreateChatDir(string $chatId): string {
        $uploadDir = wp_upload_dir();
        $chatDir = "{$uploadDir['path']}/chat/{$chatId}";
        if (!file_exists($chatDir)) {
            wp_mkdir_p($chatDir);
        }
    
        return $chatDir;
    }
    Ответ написан
    1 комментарий
  • Как добавить динамическую страницу?

    @SkyMass
    Добрый день. Если сервисы у вас это обычные страницы на элементоре, то наверное никак. А я так понимаю, что так и есть. Иначе вы бы не задавали тут такой вопрос.

    Вообще путь был бы правильным наверное такой:
    Создаете новый тип поста, например service
    Создаете файл single-service.php и в нем делаете шаблон для всех сервисов. Будет один файл отвечать за все сервисы.
    Ответ написан
    Комментировать
  • Фильтр товаров wordress ( НЕ woo)?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    greencost, Если через ajax + metaquery, то будет как-то так:
    Все фильтры завернуты в форму и представляют собой элементы формы: селекты, радиокнопки, чекбоксы. У элементов форм есть name. Обязательно должно быть скрытое поле с названием функции
    <form id="filter">
      <div class="search-holder">
        <input type="search" name="s" id="s" class="input-text" placeholder="<?php esc_attr_e( 'Поиск вакансий' ); ?>" value="<?php echo get_search_query(); ?>">
    
        <?php
        $terms_loaction = get_terms(
          array(
            'taxonomy' => 'location',
            'hide_empty' => false,
          )
        );
        ?>
    
        <?php
        if ( $terms_loaction ) :
          ?>
          <select name="city" class="select-block mobile-hide">
            <option value=""><?php esc_html_e( 'Город' ); ?></option>
            <?php
            foreach ( $terms_loaction as $location ) :
              ?>
              <option value="<?php echo esc_attr( $location->term_id ); ?>"><?php echo esc_html( $location->name ); ?></option>
            <?php endforeach; ?>
          </select>
        <?php endif; ?>
    
        <ul class="filter-list mobile-hide">
          <li>
            <label class="checkbox-block">
              <input type="checkbox" name="is_free_live">
              <span><?php esc_html_e( 'Бесплатное проживание' ); ?></span>
            </label>
          </li>
          ...
        </ul>
        <button type="submit" class="ajax-filter-btn btn"><?php esc_html_e( 'Найти вакансию' ); ?></button>
      </div>
      <input type="hidden" name="action" value="filter_vacancy">
    </form>


    php обработчик будет выглядеть как-то так:
    add_action( 'wp_enqueue_scripts', function() {
    
      $my_args = array(
        'post_type' => 'offers',
        'posts_per_page' => -1,
        'tax_query' => array(
          'relation' => 'AND',
        ),
        'meta_query' => array(
          'relation' => 'AND',
        ),
      );
    
      $my_query = new WP_Query( $my_args );
    
      wp_register_script('ajax_js', get_stylesheet_directory_uri() . '/js/ajax.js', array('jquery'), time(), true);
    
      wp_localize_script( 'ajax_js', 'ajax_obj', array(
        'ajaxurl' => admin_url('admin-ajax.php'),
        'posts' => json_encode( $my_query->query_vars ),
        'current_page' => get_query_var( 'paged' ) ? get_query_var('paged') : 1,
        'max_page' => $my_query->max_num_pages,
      ) );
    
      wp_enqueue_script('ajax_js');
    });
    
    // FILTER
    function filter_vacancy(){
    
      $args = array(
        'post_type' => 'offers',
        'posts_per_page' => -1,
        'tax_query' => array(
          'relation' => 'AND',
        ),
        'meta_query' => array(
          'relation' => 'AND',
        ),
      );
    
      if( !empty( $_POST['city'] ) && $_POST['city'] ) {
        $args['tax_query'][] = array(
          'taxonomy' => 'location',
          'field' => 'id',
          'terms' => $_POST['city'],
        );
      }
    
      if( isset( $_POST['is_free_equipment'] ) && $_POST['is_free_equipment'] ) {
        array_push($args['meta_query'][] = array(
            'key'         => 'is_free_equipment',
            'value'       => true,
            'compare'     => '=',
          )
        );
      }
    
      if( !empty( $_POST['s'] ) ) {
        $args['s'] = sanitize_text_field($_POST['s']);
      }
    
      query_posts( $args );
    
      global $wp_query;
    
      if ( have_posts() ) :
        ob_start();
    
        while ( have_posts() ) :
          the_post();
          get_template_part( 'template-parts/offers/offers', 'list' );
        endwhile;
        $response = ob_get_contents();
        ob_end_clean(); 
      else:
        $response = 'По запросу нет вакансий';
      endif;
    
      echo json_encode( array(
        'posts'       => json_encode( $wp_query->query_vars ),
        'max_page'    => $wp_query->max_num_pages,
        'found_posts' => $wp_query->found_posts,
        'content'     => $response,
      ) );
      die();
    }
    add_action('wp_ajax_filter_vacancy', 'filter_vacancy');
    add_action('wp_ajax_nopriv_filter_vacancy', 'filter_vacancy');


    ajax обработчик в упрощенном виде както так
    $('#filter').on('submit', function (e) {
      e.preventDefault();
      var filter = $(this);
      $.ajax({
        type: 'POST',
        url: ajax_obj.ajaxurl,
        data: filter.serialize(),
        dataType : 'json',
        beforeSend: function(xhr){
    
        },
        success: function (data) {
          $('.offers-list').html(data.content);
          ajax_obj.posts = data.posts;
        },
      });
    });
    Ответ написан
    Комментировать
  • Как не дать скопировать свой сайт на wordpress?

    hahenty
    @hahenty
    ('•')
    Есть вариант делать потоковую отрисовку с обратной связью для управления. На сайте только видео-контейнер и скрипт для него, типа webrtc, а на сервере отрисовка страницы с учётом передаваемых клиентом команд. Такое google-stadia для web-страниц.
    Ответ написан
    2 комментария
  • Как не дать скопировать свой сайт на wordpress?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Используйте современные технологии:
    Scss
    обфускаторы кода
    страйперы для вырезки комментов
    Системы автоматического развертывания. То есть вы работаете с чистым кодом, а потом после развертывания это превращается в кашу.
    Заложите бомбу в ваши скрипты. Логика простая если нет куки или локал стораджа, то показывается баннер "Этот человек мошенник и воришка". Или привяжите этот код к имени домена.

    В общем ваша задача максимально усложнить жизнь реверсеру.
    Ответ написан
    Комментировать
  • Как не дать скопировать свой сайт на wordpress?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак.
    Любой, кто озаботится вашим сайтом, тупо придет сюда на Тостер, и ему на блюдечке все расскажут и покажут.
    Здесь много таких любителей дармовщинки.
    Ответ написан
    2 комментария