Задать вопрос
  • Как создать кастомный путь к странице по типу /page/custom?

    @nonconformiste Автор вопроса
    add_action('init', 'custom_rewrite');
    function custom_rewrite(){
    
      add_rewrite_rule( '^(page)/([^/]*)/?', 'index.php?pagename=$matches[1]&id=$matches[2]', 'top' );
      add_filter( 'query_vars', function( $vars ){
        $vars[] = 'id';
        return $vars;
      } );
      
    }
    Ответ написан
    Комментировать
  • Как правильно вывести строку через условные теги WordPress и условные операторы?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Забирайте проверки по всем условным тегам

    $separator = '|';
    
    // Title prefixes.
    if ( is_post_type_archive() ) {
    	$title[] = _x( 'Archives:', 'post type archive title prefix', 'wpgen' );
    } elseif ( is_category() ) {
    	$title[] = _x( 'Category:', 'category archive title prefix', 'wpgen' );
    } elseif ( is_tag() ) {
    	$title[] = _x( 'Tag:', 'tag archive title prefix', 'wpgen' );
    } elseif ( is_author() ) {
    	$title[] = _x( 'Author:', 'author archive title prefix', 'wpgen' );
    } elseif ( is_date() ) {
    	if ( is_year() ) {
    		$title[] = _x( 'Year:', 'date archive title prefix', 'wpgen' );
    	} elseif ( is_month() ) {
    		$title[] = _x( 'Month:', 'date archive title prefix', 'wpgen' );
    	} elseif ( is_day() ) {
    		$title[] = _x( 'Day:', 'date archive title prefix', 'wpgen' );
    	}
    } elseif ( is_tax( 'post_format' ) ) {
    	if ( is_tax( 'post_format', 'post-format-aside' ) ) {
    		$title[] = _x( 'Asides', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) {
    		$title[] = _x( 'Galleries', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-image' ) ) {
    		$title[] = _x( 'Images', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-video' ) ) {
    		$title[] = _x( 'Videos', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-quote' ) ) {
    		$title[] = _x( 'Quotes', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-link' ) ) {
    		$title[] = _x( 'Links', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-status' ) ) {
    		$title[] = _x( 'Statuses', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-audio' ) ) {
    		$title[] = _x( 'Audio', 'post format archive title', 'wpgen' );
    	} elseif ( is_tax( 'post_format', 'post-format-chat' ) ) {
    		$title[] = _x( 'Chats', 'post format archive title', 'wpgen' );
    	}
    }
    
    // Main title.
    if ( is_single() || is_page() ) {
    	$title[] = get_the_title();
    } elseif ( is_404() ) {
    	$title[] = __( 'Page not found', 'wpgen' );
    } elseif ( is_search() ) {
    	$title[] = sprintf( __( 'Search Results for “%s”', 'wpgen' ), get_search_query( false ) );
    } elseif ( is_post_type_archive() ) {
    	$title[] = get_queried_object()->label;
    } elseif ( is_author() ) {
    	$title[] = get_queried_object()->display_name ?? '';
    } elseif ( is_date() ) {
    	if ( is_year() ) {
    		$title[]  = get_the_date( 'Y' );
    	} elseif ( is_month() ) {
    		$title[]  = get_the_date( 'F Y' );
    	} elseif ( is_day() ) {
    		$title[]  = get_the_date( 'F j, Y' );
    	}
    } elseif ( is_archive() ) {
    	$title[] = get_queried_object()->name;
    }
    
    // Add site info in the title.
    if ( ! isset( $title ) ) {
    	$title[] = get_bloginfo( 'name' );
    	$title[] = $separator;
    	$title[] = get_bloginfo( 'description' );
    } else {
    
    	if ( is_paged() ) {
    		$title[] = $separator;
    		$title[] = __( 'Page', 'wpgen' ) . ' ' . $paged;
    	}
    
    	$title[] = $separator;
    	$title[] = get_bloginfo( 'name' );
    }
    
    $title = implode( ' ', $title );
    Ответ написан
    4 комментария
  • Почему появляется эта херь LiteSpeed Cache?

    Некоторые хостеры действительно устанавливают такой плагин на сайты wordpress.
    Чтобы этого не происходило, вам нужно:
    либо в корне WordPress создать файл .litespeed_flag;
    либо просто деактивировать плагин, но не удалять его;
    Также, если у вас есть другой плагин кэширования, то LiteSpeed Cache также не должен устанавливаться.
    Ответ написан
    5 комментариев
  • Как на Wordpress перенести картинки на поддомен?

    @EvgenyMorozov
    Вариант, если все уже настроено и нужно "перенести" статику на поддомен.

    В nginx добавить static.example.com
    server { 
    server_name example.com static.example.com;
    }


    Добавить в DNS cname static.example.com 12.34.56.78 (ip сервера) -- после обновления DNS, сайт должен static.example.com пинговаться.

    Дальше

    В админке Вордпресса Настройки->Медиафайлы прописать параметр Полный URL-путь к файлам на http://static.example.com/wp-content/uploads. Теперь новые картинки будут добавляться уже с этим путем.

    Заменить c помощью wp-cli в базе данных все пути к картинкам на
    http://static.example.com/wp-content/uploads
    wp search-replace 'http://example.com/wp-content/uploads' 'http://static.example.com/wp-content/uploads'


    В wp-config.php
    define('COOKIE_DOMAIN', 'example.com' );
    define('WP_PLUGIN_URL', 'http://static.example.com/wp-content/plugins');


    Если все получилось, то теперь картинки, CSS&JS плагинов отдаются с static.example.com, при этом ничего никуда не переносится и лежит в привычном месте.
    Ответ написан
    1 комментарий
  • Свой шаблон для всех подкатегорий одной рубрики wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Вы можете проверять id родительской категории в category.php и подключать нужный вам шаблон

    if ( get_queried_object()->parent == '12' ) {
    	get_template_part( 'templates/archive', 'service' );
    } else {
    	get_template_part( 'templates/archive', 'common' );
    }


    Но лучше создать кастомный тип записей, к ним свою таксономию и нужные шаблоны
    Ответ написан
    1 комментарий
  • Почему не меняется title с помощью Yoast Seo?

    Punkie
    @Punkie
    Не нужно title вручную в теме вообще выводить. Сам вордпресс и Yoast в том числе выводят тайтл через функцию <?php wp_head(); ?>
    Ответ написан
    2 комментария
  • Как защитить сайт от копирования?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Единственный рабочий вариант при демонстрации вёрстки и удобный для всех:
    Виртуалка/VPS + браузеры в режиме киоска + TeamViewer/VNC
    teamviewer-logo-big.svg
    -------------------
    Демонстрация через Skype - абсолютно неприемлемый метод: не проверить в различных браузерах, не потестировать удобство и масштабирование, плохое качество при передаче изображения и т.д.

    Я бы не стал работать с верстальщиком, который для демонстрации использует исключительно Skype, а не нормальные средства, позволяющие Заказчику САМОМУ проверять корректность вёрстки в различных браузерах и валидность стандартов такой вёрстки.
    А изначально, при начале работы с новым человеком, я бы, всё-таки, давал микро-тест на вёрстку и выравнивание из 2-3 элементов, смотрел бы его GitHub и читал бы отзывы в портфолио и после, договаривался бы ПО-ЧЕЛОВЕЧЕСКИ, а не начиная взаимоотношения с негатива.
    Ответ написан
    1 комментарий