• Не подключается jquery и файлы js в Word Press. В чем причина ошибки?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Элементы массива должны быть в виде строк:
    // wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array('jquery'), null, true );

    Зачем Вам 2 одинаковых slick.js?
    // wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.js', array(jquery), 'null', true );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );

    Стили хорошо бы подключать в шапке, а скрипты в подвале, вот финальный код:
    <?php
    add_action('wp_enqueue_scripts', function () {
        // styles
        wp_enqueue_style('style', get_template_directory_uri() . '/assets/css/style.css');
        wp_enqueue_style('media', get_template_directory_uri() . '/assets/css/media.css');
        wp_enqueue_style('slick-style', get_template_directory_uri() . '/assets/css/slick.css');
    
        // jquery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js', [], null, true);
        wp_enqueue_script('jquery');
    
        // scripts
        wp_enqueue_script('slick', get_template_directory_uri() . '/assets/js/slick.min.js', ['jquery'], null, true);
        wp_enqueue_script('main', get_template_directory_uri() . '/assets/js/main.js', ['jquery'], null, true);
    });
    
    add_theme_support('post-thumbnails');
    add_theme_support('title-tag');
    add_theme_support('custom-logo');
    ?>
    Ответ написан
    5 комментариев
  • Как исправить ошибку при редактировании сайта?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    - Включить другую тему и попробовать снова нажать "Редактировать сайт".
    - Отключить плагины и попробовать снова нажать "Редактировать сайт".
    - Возможно, у Вас слишком древний браузер, который не поддерживает JS метод .at(), зайдите с современного браузера и снова нажмите "Редактировать сайт".

    Попробуйте и сообщите о результате.
    Ответ написан
    9 комментариев
  • Как отключить редактор страниц в админке Wordpress?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    Как отключить редактор страниц в админке Wordpress?


    так же как и подключается

    редактор и не только

    что-то типо этого:
    add_action('current_screen','remove_editor_support');
    if(!function_exists('remove_editor_support')){
    function remove_editor_support(){
        $get_screen=get_current_screen();
        $current_screen=$get_screen->post_type;
        $post_type='post';
        // $post_type='page';
        if($current_screen==$post_type){
            remove_post_type_support($current_screen,'editor');
        }
    }}


    655eed60573bd635566099.jpeg

    можно также через фильтр add_filter('register_post_type_args',
    например отключить show_in_rest, но на счет корректности точно не скажу (не тестировал)...

    655eee80c44f3234358167.jpeg
    Ответ написан
    2 комментария
  • Что делать если нет платежного плагина от банка, для WooCommerce?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    но у банка нету специального плагина для WooCommerce

    Какие есть варианты, кроме написания своего плагина? Может есть что то готовое?

    Чтобы прям напрямую в нужный Вам банк залетали платежи - такого нет, понадобится какой то сторонний интернет-эквайринг (агрегатор), который: предоставит необходимую интеграцию с WС > примет платеж > переведет деньги в Ваш банк.
    Ответ написан
    1 комментарий
  • Как выбрать прокси для Wordpress?

    Можете попробовать через cloudflare сайт подключить - это из простого
    Ответ написан
    4 комментария
  • Как запретить счетчику Яндекс Метрика изменять HTML страницу сайта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вопрос. Как запретить Яндекс Метрике менять что либо на сайте?

    По умолчанию - метрика ничего не изменяет в существующем html.
    В моем случае Яндекс Метрика изменяла номер телефона в шапке сайта на неизвестный мне номер.

    Это не метрика, а очень похоже на calltracking. Возможно, Яндекс Телефония как то была интегрирована в счетчик.
    Ответ написан
    6 комментариев
  • Как часто Docker выполняет logout regestry?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    как часто docker выполняет команду logout и выполняется ли она вообще

    Logout из реестра не выполняется автоматически.
    Ответ написан
    3 комментария
  • Как получить ближайшие вложенные страницы?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    'numberposts' => -1 рекурсивно получает все дочерние страницы указанного родителя, если его не указывать, то вернуться лишь те дочерние страницы, у которых parent_id == id родителя:
    <?php
    $id = 1;
    
    $config = [
      'parent' => $id,
      'post_type' => 'page',
      // 'numberposts' => -1,
      'post_status' => 'publish',
    ];
    
    $child = get_pages($config);
    
    if($child) {
      foreach($child as $page) {
        echo $page->ID;
      }
    } else {
      echo 'У этой страницы нет дочерних страниц.';
    }
    Ответ написан
    Комментировать
  • Что делать если на сервер поступает 2 и более запроса на обработку?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Flask является синхронным фреймворком, а значит все операции будет выполнять последовательно.
    и как это устранить

    Использовать:
    - Многопоточность в Flask.
    - WSGI серверы, которые способны обрабатывать множество запросов параллельно, используя многопроцессорность или многопоточность.
    - Изначально асинхронные фреймворки, например FastAPI.
    - Очереди, но здесь опять синхронное выполнение.
    Ответ написан
    4 комментария
  • Какой выбрать стек технологий?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Какой выбрать стек технологий?

    Тот, который знаете. Вам необходимо отталкиваться от трудозатрат, если Вы можете себе позволить изучить технологию, то можно рассматривать любые узкоспециализированные инструменты.

    Учитывая, что Вы указали Python, то:
    - Back: Python + Django или FastAPI (если не будет хватить Django).
    - Front: Python (Django templates), либо отдельный фронт на React/Vue (если будет иметь смысл).
    Python + Flask и связанное с этим, например, Bootstrap и тому подобное

    Bootstrap не имеет никакого отношения к Python и его экосистеме.
    Мобильное приложение для Android, которое по сути повторяло бы функциональность WEB, но со своими собственными оговорками.

    От самого простого:
    - Cordova.
    - React Native.
    - Flutter.
    - Java и Kotlin смысла не вижу рассматривать в Вашем случае.
    Ответ написан
    Комментировать
  • Как получить элемент по селектору из переменной?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    jquery:
    const currentSlide = swp.slides[activeIndex]
    const btn = $(currentSlide).find('.header-banner-swiper__slide-btn');

    vanilla:
    const currentSlide = swp.slides[activeIndex]
    const btn = currentSlide.querySelector('.header-banner-swiper__slide-btn');
    Ответ написан
    Комментировать
  • Где искать JS код если в консоль показывает что он в VM?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    JS из WM - это что то вроде выполнение кода в контексте браузера, но не из js файла при загрузке страницы. Как вариант, где искать: innerHTML, eval, createElement(script).
    Ответ написан
    Комментировать
  • Почему переменная класса становится undefined при обращении из метода?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Стрелочная функция не имеет своего this, соответственно возьмет его из скоупа выше:
    MyFunc = (e) => {
      console.log("MyVariable: " + this.MyVariable); // oh yes
    }
    Ответ написан
    Комментировать
  • Как сделать проще. компактней код?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Попроще, как заказывали!
    const clickTargetElement = document.querySelector('.hiking__about_item_img');
    
    const imageConfigurations = {
      primaryImage: {
        htmlElement: document.querySelector('.img1'),
        sourcePaths: ['img/about_hiking/1.png', 'img/about_hiking/2.png'],
        altTexts: ['House and mountains in the background', 'Snowy mountains']
      },
      secondaryImage: {
        htmlElement: document.querySelector('.img2'),
        sourcePaths: ['img/about_hiking/1.png', 'img/about_hiking/2.png'],
        altTexts: ['House and mountains in the background', 'Snowy mountains']
      }
    }
    
    const toggleImageAttributes = ({htmlElement, sourcePaths, altTexts}) => {
      const isPrimarySource = htmlElement.getAttribute('src') === sourcePaths[0];
      const indexToUse = isPrimarySource ? 1 : 0;
    
      htmlElement.setAttribute('src', sourcePaths[indexToUse]);
      htmlElement.setAttribute('alt', altTexts[indexToUse]);
    }
    
    clickTargetElement.addEventListener('click', () => {
      Object.values(imageConfigurations).forEach(toggleImageAttributes);
    });
    Ответ написан
    4 комментария
  • Как отправить запрос с конкретной формы и передать ID или Class формы в PHP-скрипт через ajax-запрос?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Как нужно вызывать js-функцию, чтобы она брала данные с той формы которую отправили? И как передать через ajax или ID, или Class формы?

    Модифицировать кнопку форм, чтобы она вызывала событие формы submit:
    <button type="submit" class="button">Отправить</button>

    Создадим один обработчик для всех форм:
    async function sendForm(form) {
      const data = {
        name: form.querySelector("input[name='name']").value,
        email: form.querySelector("input[name='email']").value,
        phone: form.querySelector("input[name='phone']").value,
        message: form.querySelector("textarea[name='message']").value,
        formId: form.id,
        formClass: form.className
      }
    
      try {
        const response = await fetch('php/send.php', {
          method: 'POST',
          headers: {'Content-Type': 'application/json'},
          body: JSON.stringify(data)
        });
    
        if(response.ok) {console.log('Success send form')}
        else console.log('Error send form', response);
      }
    
      catch(error) {console.log('Error: ' + error.message)}
    }

    Вешаем слушателей на submit форм:
    document.querySelector('#form1').addEventListener('submit', (e) => {
      e.preventDefault();
      sendForm(event.target);
    });
    
    document.querySelector('#form2').addEventListener('submit', (e) => {
      e.preventDefault();
      sendForm(event.target);
    });

    В зависимости от формы нужно в PHP-скрипте менять тему письма.

    В php обработчике формы обрабатываем полученные данные от js (php у меня не очень):
    $json = file_get_contents("php://input");
    $data = json_decode($jsonData, true);
    
    // get formId and formClass
    $id = $data['formId'];
    $class = $data['formClass'];
    
    // this change type email message
    Ответ написан
    4 комментария
  • Как написать скрипт/софт на Python который будет автоматически отвечать на сообщения в телеграмме по шаблону?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как написать скрипт/софт на Python который будет автоматически отвечать на сообщения в телеграмме по шаблону?

    Рекомендую начать с гугла и запроса "python telegram libraries".
    С помощью какого фреймворка вообще пишутся подобные скрипты ?

    python-telegram-bot
    Telethon
    Aiogram
    И возможно ли это реализовать с помощью телеграмм бота написанного на aiogram?

    Возможно.
    Ответ написан
    Комментировать
  • Как или чем решить новую капчу Yandex SmrtCaptcha?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Существуют ли браузерные расширения для автоматического решения данной капчи?

    Нет, в этом весь смысл капчи.
    Меня эта капча настолько бесит, что я даже готов потратить время и написать свое расширение для обхода, лишь бы было внешнее API для ее решения.

    Пишите - ждать по 20-60 секунд для расшифровки, через специализированные сервисы + это не бесплатно, смысла для личного пользования практически нет.

    alexalexes все правильно написал в комменте.
    Ответ написан
    2 комментария
  • Как правильно закрыть от индексации URL с GET параметром источника ссылки?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Не индексировать страницы в url которых имеется url параметр param, robotx.txt:
    User-agent: *
    Disallow: /*?param=

    Но лучше использовать канонические адреса, html страницы:
    <link rel="canonical" href="https://www.example.com/statya"/>
    Ответ написан
    1 комментарий
  • Насколько законно для крупной компании пробивать человека по почте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Насколько законно для крупной компании пробивать человека по почте?

    Размер и длина ;) компании не имеют значения. На всех действует 152 ФЗ ("общедоступные персональные данные - персональные данные, доступ неограниченного круга лиц к которым предоставлен с согласия субъекта персональных данных или на которые в соответствии с федеральными законами не распространяется требование соблюдения конфиденциальности").

    Соответственно, в теории можно подать на них в суд за использование ПД, им придется доказать, что Вы давали такое согласие. Однако, на кого Вы будите подавать в суд? Ответчик кто? Вся компания? Конкретный чел? Может, кот пробежал по клаве и взломал пентагон? - экспертизы в студию!

    Я хочу узнать, насколько незаконны их действия?

    Законны, пока не доказано обратное.

    На что они меня пробили, отправили письмо моему начальнику, а сама компания чуть ли не угрожает мне.

    Как мерили уровень "угроз"?
    Нет такой статьи "покушение на угрозу". Это не угроза, пока не доказано обратное.

    Если резюмировать, то овчинка выделки не стоит, с обоих сторон.
    Ответ написан
    Комментировать
  • Next JS это только про SSR или на нём приложение ничем не отличается от реакта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Next JS это только про SSR

    Это про любой тип веб-приложения:
    - SSR.
    - SSG.
    - ISR.

    Ну а еще, это фактически единственный инструмент, который может все и сразу под React.

    Next JS это тот же реакт в котором сразу есть все необходимые пакеты для работы с ним или он все же медленней обычного spa приложения на реакте с пакетами?

    - Все инструменты в наличие.
    - Next может экспортировать собранное React приложение, после чего - некста там уже не будет, а статика, маршрутизация и реактивность останется. Что быстрее статики?
    что в нексте реакт всегда обращается к своему серверу для SSR

    Как настроите, так и будет работать. Можно всегда, можно иногда, можно никогда.
    а у обычного реакта мы фетчем просто запросы шлем, когда все spa приложение очень быстро работает без лишних запросов на сервер

    На Next тоже самое можно. А Ваш SPA в SEO может? А рендерить одни страницы без SEO, вторые ПРЕрендерить с SEO, а остальные и так и так на лету может? А единовременно в рамках одного приложения? А еще и без дополнительных библиотек? А еще с конским комьюнити в рамках одного инструмента?

    Еще начинают активно внедряться Server Components, которые по некоторым отзывам - могут стать отраслевым стандартом.

    Если Вас интересует лишь SPA без SEO и дополнительных опций рендеринг, который будет рендериться лишь на клиенте, то оптимальнее будет выбрать лишь React + Роутер + WebPack в качестве сборщика.

    Vercel

    Vercel, оплата интеграции по стандартному тарифу, ну Вы знаете ;)
    Ответ написан
    1 комментарий