Задать вопрос
  • Как подключить script src= прямо в файле JS?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    const loadedModule = require('./modulePath/index.js');
    
    loadedModule.counter()
    console.log(loadedModule.awesomeValue);

    Хорошее руководство
    Ответ написан
    1 комментарий
  • Можно ли использовать calc() в медазапросе?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Вероятно вам нужен медиазапрос на соотношение сторон
    https://developer.mozilla.org/en-US/docs/Web/CSS/@...

    Там вообще много разных вариантов https://developer.mozilla.org/en-US/docs/Web/CSS/C...
    Ответ написан
    Комментировать
  • Как в wordpress сделать чтобы url категории заканчивался слешем?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    WordPress functions.php (для категорий, нужно очистить кэш wp (если используется)):
    // add a slash at the end of the url for categories
    function add_url_slash_from_categories() {
        global $wp_rewrite;
        $wp_rewrite->category_base = 'category/';
        $wp_rewrite->tag_base = 'tag/';
        $wp_rewrite->flush_rules();
    }
    
    add_action('init', 'add_url_slash_from_categories');

    WordPress functions.php (для всех, нужно очистить кэш wp (если используется)):
    // add a slash at the end of the url of all urls, excluding files
    function add_url_slash($url) {
        if (!preg_match('/\.[a-zA-Z0-9]+$/', $url)) {
            $url = trailingslashit($url);
        }
        return $url;
    }
    
    add_filter('add_url_slash', 'add_slash_to_all_urls');

    .htaccess (для всех, 301 редирект):
    # set 301 redirects for all urls without a slash at the end to a slash
    RewriteEngine On
    RewriteBase /
    RewriteRule ^category/(.*)$ /category/$1/ [R=301,L]
    RewriteRule ^tag/(.*)$ /tag/$1/ [R=301,L]
    Ответ написан
    1 комментарий
  • Снять сайт с теневого бана Google?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    После получения ссылки на пациента, все более менее прояснилось. Ниже список того, что лично меня напрягло, когда я увидел сайт (от наиболее приоритетного к наименьшему):
    - При переходе с главной по элементу каталога, я получаю url //openworkshop.su/?page=1&page_size=30&name=&game=108600&game_select=false&dependencies=false&sort=iMOD_DOWNLOADS, это же уже как бы внутренняя страница, но по url - это главная.
    - Очень похожие title и description на разных страницах.
    - Минимум текста на страницах.
    - Отсутствуют атрибуты rel="canonical".
    - Отсутствуют H1-3 заголовки.
    - Ранее был проиндексирован дубль по //5.44.41.136/, хоть и щас его нет здесь нет, но я бы все равно отдавал 403 код.
    - Слишком много "красного" и "желтого" при диагностике.
    КартинкО
    658d19b88c8e5000123808.png
    Ответ написан
    1 комментарий
  • Вордпресс, почему не выводится пагинация на странице поиска?

    YBB
    @YBB
    Пагинация на Вашей статической странице /search/ не выводится потому, что функция the_posts_pagination() работает с изначальной выборкой (у статической страницы это всегда только одна запись) и ничего не знает о том, какие WP_Query имеют место в шаблоне. Для пагинации произвольных выборок больше подходит функция paginate_links(), которой можно передать total и current из кастомной выборки.
    Ответ написан
    Комментировать
  • Как изменять сайт на питоне, аналогично javascript коду сайта?

    Vindicar
    @Vindicar
    RTFM!
    1) Как мне использовать питон код в javascript коде сайта

    Никак, большинство бразуеров поддерживает только JavaScript. Клиентский код придётся писать на нём.
    Зато ты можешь использовать любой язык на стороне сервера - если твоя программа поддерживает нужные протоколы (HTTP + websockets), браузеру будет всё равно, на чём она написана.
    2) Как я могу вносить изменения на работающую html страницу, аналогично работе javascript кода, написанного выше

    Использовать для этой цели JavaScript. JS подключается к вебсокету, Питон отдаёт данные через этот вебсокет, JS их принимает, интерпретирует как сообщения и преобразует страницу нужным образом.
    Ответ написан
    1 комментарий
  • Как запретить пользователям из России обращаться к определенным функциям сервера?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    ФЗ № 406 от 31.07.2023:
    Владелец сайта и (или) страницы сайта в сети "Интернет", и (или) информационной системы, и (или) программы для электронных вычислительных машин, являющийся российским юридическим лицом или гражданином Российской Федерации и осуществляющий свою деятельность в сети "Интернет" на территории Российской Федерации, в случае, если доступ к информации, размещенной на его сайте и (или) странице сайта в сети "Интернет", и (или) в его информационной системе, и (или) программе для электронных вычислительных машин, предоставляется пользователям, прошедшим авторизацию, обязан проводить ее в отношении пользователей, находящихся на территории Российской Федерации, одним из следующих способов:

    - с использованием абонентского номера оператора подвижной радиотелефонной связи в порядке...
    - ЕСИА...
    - ЕБС...
    - с использованием иной информационной системы, обеспечивающей авторизацию пользователей сайтов и (или) страниц сайтов в сети "Интернет"...

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

    Тут интересный момент в "находящихся на территории РФ" пользователей. Соответственно, Вы обязаны удостовериться, находится ли пользователь на территории РФ или нет. Варианты определения геолокации пользователя:
    - IP-адрес (своя бд, сторонний сервис, WebRTC).
    - HTML5 Geolocation API.
    - Часовой пояс браузера.
    - Геолокация у мобильных устройств.

    Но в отношение IP имеется №152-ФЗ, который гласит "персональные данные - любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных)", а значит IP сюда тоже можно "натянуть на глобус", соответственно, вначале необходимо спросить разрешение на обработку данных о любой геолокации пользователя, а затем, если он разрешит - проверять, "верблюд ли он". Соответственно, если пользователь не разрешит, то Вы не имеете право предоставлять авторизацию, через "иные сервисы".
    Т.е. единственный выход выходит сервисы которые каким-то образом ассоциируют IP со страной/регионом/городом и делятся этой информацией по подписке, либо предоставляют готовую БД, но у неё проблема в потере актуальности со временем

    Именно, платить в случае не верного определения - Вам.
    Ответ написан
    Комментировать
  • Почему не обновляется tittle и description в поисковиках?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    Поисковикам нужно больше времени, чтобы обновить данные или я что-то неправильно сделал?

    Нужно. Но, если ПС посчитает, что title/desctiption не соответствуют ключу, а страница в целом соответствует, то ПС может использовать иные данные со страницы.
    Ответ написан
    2 комментария
  • Как частично закрыть от индекса /xfsearch/?

    pro100taa
    @pro100taa
    Disallow: /product/
    Allow: /product/*

    Вот так сделайте
    Ответ написан
    1 комментарий
  • Стоил ли экранировать вывод Contact Form 7?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Стоил ли экранировать вывод Contact Form 7?

    Если Вы под "экранировать" понимаете санитайзинг (Sanitize), то да. Лишний слой безопасности, который не зависит от конкретного плагина - хуже не сделает (если написан не криво).
    Ответ написан
    Комментировать
  • Как исключить записи отдельной категории своей таксономии WordPress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Параметры Таксономий

    Получаем все записи с таксономией offer_cat, исключая записи с id 100, 101 и 102:
    $q = new WP_Query([
      'post_type' => 'offer',
      'posts_per_page' => 99,
      'tax_query' => [
        [
          'taxonomy' => 'offer_cat',
          'field' => 'term_id',
          'terms' => [100, 101, 102],
          'operator' => 'NOT IN',
        ],
      ],
    ]);

    Получаем записи (3) с таксономией offer_cat и id 100, 101 и 102:
    $q = new WP_Query([
      'post_type' => 'offer',
      'posts_per_page' => 99,
      'tax_query' => [
        [
          'taxonomy' => 'offer_cat',
          'field' => 'term_id',
          'terms' => [100, 101, 102],
          'operator' => 'IN',
        ],
      ],
    ]);
    Ответ написан
    1 комментарий
  • Какие методы сжатия изображений (миниатюр) для сайта есть?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Я так понимаю что создание миниатюр и сжатие это все таки разные вещи

    Верно.
    так как миниатюры создаются по принципу размера 1х1

    Не обязательно. Миниатюры создаются под определённые задачи. Бывает так, что существует несколько миниатюр единовременно, для одного изображения.
    Так как оптимизировать главную страницу с лентой записей с такими объемными миниатюрами?

    - Уменьшать количество единовременно загружаемых изображений.
    - Оптимизировать сами изображения.
    Конвертировать в webp формат. Я правильно понимаю?

    Верно.
    Ответ написан
    Комментировать
  • Можно ли как-то применять execute_script относительно только WebElement в Selenium, а не драйвера?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно, попробуйте так:
    el = driver.find_element(By.CLASS_NAME, "checbox")  # or checkbox?
    c = driver.execute_script("return arguments[0].getBoundingClientRect();", el)
    print(c)  # {'bottom': 200, 'height': 50, 'left': 150, 'right': 250, 'top': 150, 'width': 100}
    Ответ написан
    2 комментария
  • Как подключить вход через Google?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    6 комментариев
  • Как вывести список городов и областей на WordPress?

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

    if ( ! function_exists( 'get_converter_wp_cities' ) ) {
    
    	/**
    	 * Return string or array with wp cities.
    	 *
    	 * @param string $control Key to get one value. Optional. Default null.
    	 *
    	 * @return string|array|false
    	 */
    	function get_converter_wp_cities( $control = null ) {
    
    		// Sanitize string (just to be safe).
    		if ( ! is_null( $control ) ) {
    			$control = get_title_slug( $control );
    		}
    
    		// Main converter array.
    		$converter = array(
    			'moscow'           => 'Москва',
    			'saint-petersburg' => 'Санкт-Петербург',
    			'novosibirsk'      => 'Новосибирск',
    		);
    
    		$converter = apply_filters( 'get_converter_wp_cities', $converter );
    
    		// Return controls.
    		if ( is_null( $control ) ) {
    			return $converter;
    		} elseif ( ! isset( $converter[ $control ] ) || empty( $converter[ $control ] ) ) {
    			return false;
    		} else {
    			return $converter[ $control ];
    		}
    	}
    }
    
    if ( ! function_exists( 'query_vars_wp_cities' ) ) {
    
    	/**
    	 * Function for 'query_vars' filter-hook.
    	 * 
    	 * @param string[] $public_query_vars The array of allowed query variable names.
    	 *
    	 * @return string[]
    	 */
    	function query_vars_wp_cities( $public_query_vars ){
    
    		$public_query_vars[] = 'city';
    
    		return $public_query_vars;
    	}
    }
    add_filter( 'query_vars', 'query_vars_wp_cities' );


    Вывести список городов вы можете простым циклом, создавая ссылки с помощью функции add_query_arg()

    echo '<ul class="city-list">';
    
    foreach ( get_converter_wp_cities() as $key => $city ) {
    	$url = add_query_arg( array( 'city' => $key ), get_home_url( '/' ) );
    
    	echo '<li class="city-list-item"><a href="' . esc_url( $url ) . '" class="link">' . esc_html( $city ) . '</a></li>';
    }
    
    echo '</ul>';


    Получить значение текущего горда из гет-параметра мы можете функцией get_query_var()

    $city = get_query_var( 'city', false );
    var_dump( $city );


    Чтобы создать записи физически, как в вашем примере, вы можете зарегистрировать тип записи и таксономии для него с помощью register_post_type() и register_taxonomy(), а создать записи wp_insert_post()

    Шорткод можете создать по этому шаблону
    if ( ! function_exists( 'wp_city' ) ) {
    
    	/**
    	* Add shortcode with city [wp_city city=""]
    	*
    	* @param array $atts shortcode attributes.
    	*
    	* @return string
    	*/
    	function wp_city( $atts ) {
    
    		// Define a white list of attributes.
    		$atts = shortcode_atts( array(
    			'city' => get_query_var( 'city', false ),
    		), $atts );
    
    		if ( $atts['city'] ) {
    			$output = '<span class="current-city">' . esc_html( get_converter_wp_cities( $atts['city'] ) ) . '</span>';
    		}
    
    		return apply_filters( 'wp_city', $output );
    	}
    }
    add_shortcode( 'wp_city', 'wp_city' );


    Большая проблема — собирать тексты и заголовки для SEO. Для создания переменных плагина Yoast можете взять этот шаблон

    function get_yoast_current_city() {
    
    	$city = get_query_var( 'city', false );
    
    	if ( $city ) {
    		$string = $city;
    	} else {
    		$string = '';
    	}
    
    	return $string;
    }
    
    
    // Define the action for register yoast_variable replacments.
    function register_custom_yoast_variables() {
    	wpseo_register_var_replacement( '%%CurrentCity%%', 'get_yoast_current_city', 'advanced', __( 'Some instead title text', 'wpgen' ) );
    }
    
    // Add action.
    add_action( 'wpseo_register_extra_replacements', 'register_custom_yoast_variables' );


    Еще одна проблема в том, что вам понадобятся склонения городов в тексте и заголовках. Для решения этой задачи я создавал большую excel-таблицу со списком и парсил ее библиотекой SimpleXLSX

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

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    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 Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    но у банка нету специального плагина для WooCommerce

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

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

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