/ Сайтостроение / Wordpress / URL, ссылки страниц, ЧПУ

URL, ссылки страниц, ЧПУ

24.12.2015

881

ЧПУ

Для нормального отображения всех ссылок страниц сайта, одним из первых дел при создании сайта необходимо установить плагин Cyr to Lat enhanced.
Для отключения из адресной строки /category/ — плагин Remove Category URL (50 000 установок).

Функция отключения /category/ есть в настройках плагина Yoast SEO (Дополнительно > Постоянные ссылки). !С версии плагина Yoast SEO 7 и выше эта функция упразднена. Все таки надо ставить плагин Remove Category URL

При нормальной транслитерации с плагином Cyr to Lat enhanced все же распространенные названия страниц и особенно разделов лучше прописывать на английский: новости-news, статьи-articles, предложения-offers и т.п.

Варианты схем постоянных ссылок

Если на сайте используется только одна категория для записи, то предпочтительнее вариант: /%category%/%postname%/
Если же для одного поста могут быть назначены несколько категорий, то запись будет дублироватся по двум разным адресам:

  • сайт/категория1/статья1
  • сайт/категори2/статья1

что не очень хорошо для продвижения. Также возможна путаница в breadcrumbs. В этом случае лучше использовать схему: /%postname%/

Сейчас не уверен насколько это верно. У поста есть первичная категория (primary), которая и будет фигурировать в breadcrumbs и URL


Лучше использовать одну категорию для записи, если есть необходимость идентификации записи по нескольким направлениям — использовать систему меток

Внутренние ссылки

На внутренние ссылки по сайту удобнее устанавливать относительные ссылки:

<a href="../breadcrumbs/">breadcrumbs</a>

Сайт и категории при этом будут генерироватся налету, и при изменении структуры сайта или переносе не пострадают.

Относительный путь для изображений

При вставке изображений в запись им принудительно прописывается абсолютный url. Это не удобно при изменении домена сайта, либо включении сертификата SSL. Конечно при описаных случаях можно внести корректировку через базу данных, но зачем лишние движения.

Отключить указание хоста можно плагином Relative Image URLs (4000+), а простой функцией (которая немногим отличается от той что в плагине) можно и вовсе убрать домен:

// Убирать домен при импорте изображения в запись
function switch_to_relative_url($html, $id, $caption, $title, $align, $url, $size, $alt)
{
$imageurl = wp_get_attachment_image_src($id, $size);
$relativeurl = wp_make_link_relative($imageurl[0]);   
$html = str_replace($imageurl[0],$relativeurl,$html);
      
return $html;
}
add_filter('image_send_to_editor','switch_to_relative_url',10,8);

Изображения будут вставляться в таком виде:

<img class=»alignnone size-full wp-image-257″ src=»/wp-content/uploads/2018/03/vn_2.jpg» alt=»» width=»1000″ height=»433″ />

Убрать из WC /product/ и /product-category/

Чтобы убрать префикс у категорий товаров нужно проделать следующее:

1. Установить этот код в fuctions.php:

//Убрать из URL /product/ и /product-category/
add_filter('request', function( $vars ) {
    global $wpdb;
    if( ! empty( $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {
        $slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );
        $exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));
        if( $exists ){
            $old_vars = $vars;
            $vars = array('product_cat' => $slug );
            if ( !empty( $old_vars['paged'] ) || !empty( $old_vars['page'] ) )
                $vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];
            if ( !empty( $old_vars['orderby'] ) )
                    $vars['orderby'] = $old_vars['orderby'];
                if ( !empty( $old_vars['order'] ) )
                    $vars['order'] = $old_vars['order'];    
        }
    }
    return $vars;
});

2. В настройках url (постоянные ссылки) в строке База категорий товара прописать точку (.)

Используя этот код нужно следить, чтобы не было товара, записи или страницы с совпадающими slug’ами с категориями товаров

Убрать лишние префиксы можно с помощью плагина WooCommerce Permalink Manager (9000). После установки плагина нужно поставить 2 галки для формирования URL категорий и товаров.

Проблемы URL

В woocommerce столкнулся с такой проблемой — если url товара состоит из одних цифр (при этом вложенность категории 3 и более), страница товара выдает 404 ошибку. Решение: добавлять к цифрам символы, например наименование подкатегории в которую он входит.

Пример такого url: site.ru/tovar/kovrolin/kovrolin-v-rulonah/sintelon/kovrolin-oasis/74423/

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
window.location

window.location

window.location — это технология java script по управлению URL. Данный функционал дает довольно обширные возможности для разных направлений: фильтр, перемещение по сайту, поиск и т.д. Параметры window.location window.location может получить Читать далее »

Методы запроса GET POST

Методы запроса GET POST

Существует два метода запроса к базе данных: GET и POST. Основное отличие, GET это открытый запрос небольшого размера, изменяющий строку браузера (пример: поиск по сайту), POST может иметь бОльший размер Читать далее »

Добавить комментарий

Пока нет комментариев. Будь первым!

URL, ссылки страниц, ЧПУ
Плавный скроллинг колесом
Рекомендации для васПлавный скроллинг колесомOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.