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

Циклическая ссылка ведет пользователя на ту же страничку, где он только что находился. Смысла в таких линках ноль, да и поисковые системы их не жалуют. Каждая вторая тема для WordPress буквально напичкана этими циклическими ссылками. Разбив статью на две части, мы постараемся максимально подробно рассказать о том, каким образом можно избавиться от них.

План первой части выглядит следующим образом:

  1. Как удалить линк на самого себя из заголовка.

  2. Как избавиться от ссылки с логотипа.

  3. Как удалить ссылку на текущую web-страницу в менюшке ВордПресса.

Как удалить линк, который ссылается на самого себя?

Сначала было бы неплохо найти эту циклическую ссылку. В ВордПрессе она находится в шаблоне web-сайта, чаще всего в «Одна запись»:

content-single

Далее вы ищете код, который хотя бы приблизительно похож на вот этот:

<a href="/<?php the_permalink(); ?>"><?php the_title(); ?></a>

После чего делаете с ним такие махинации:

<?php the_title(); ?>

 

В конечном счете, вместо ссылки вы будете видеть текст заголовка.

 

Как удалить с логотипа циклическую веб-ссылку?

 

Отметим, что ссылка эта находится в файле «header.php». Воспользуемся элементарным php-условием:

 

<?php
if ( is_home() && !is_paged() ) {
   echo('<p class="logo">Site.ru</p>'); // код, который будет выводится на главной странице
} else {
   echo('<p><a class="logo" href="/">Site.ru</a></p>'); // действие для остальных страниц
}
?>

 

Может быть такое, что ваши логотип и ссылка имеют такой вид:

 

<a href="/<?php echo esc_url( home_url( '/' ) ); ?>" title='<?php bloginfo( 'name' ); ?>' rel="home"><?php bloginfo( 'name' ); ?></a>

 

В таком случае, перед «обращением» в php-условие необходимо заменить все на обычный html-код. Переделка выглядит так:

 

<a href="/" title="Главная страница" rel="home">Имя сайта</a>

 

Это же необходимо проделать с логотипом, если он был задан картинкой:

 

<img src="/<?php header_image(); ?>" alt='<?php bloginfo( 'name' ); ?>' />

 

Меняем этот код на следующий:

 

<img src="/wp-content/themes/ВАША_ТЕМА/images/НАЗВАНЕ_КАРТИНКИ.jpg" alt="Главная страница" />

 

И только после этого помещаем в php-условие:

 

Как можно удалить ссылку на страничку в менюшке Вордпресса?

 

Способов выведения меню в WordPress достаточно много, однако в большинстве тем это происходит с помощью опции wp_nav_menu.

 

Для начала вам необходимо найти это меню, а затем заменить вышеупомянутый файл на wp_nav_menu_extended()

 

Например:

 

<?php wp_nav_menu_extended( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu') ); ?>

 

Далее открываем файл «Функции» (functions.php)

 

И после <?php надо будет вставить такой вот код:

 

function wp_nav_menu_extended($args = array()) {
    $_echo = array_key_exists('echo', $args) ? $args['echo'] : true;
    $args['echo'] = false;

    $menu = wp_nav_menu($args);

    // Load menu as xml
    $menu = simplexml_load_string($menu);

    // Find current menu item with xpath selector
    if (array_key_exists('xpath', $args)) {
        $xpath = $args['xpath'];
    } else {
        $xpath = '//li[contains(@class, "current-menu-item") or contains(@class, "current_page_item")]';
    }

    $current = $menu->xpath($xpath);

    // If current item exists
    if (!empty($current)) {
        $text_node = (string) $current[0]->children();

        // Remove link
        unset($current[0]->a);

        // Create required element with text from link
        $element_name = $args['replace_a_by'] ? $args['replace_a_by'] : 'span';

        $dom = dom_import_simplexml($current[0]);
        $n = $dom->insertBefore(
            $dom->ownerDocument->createElement($element_name, $text_node),
            $dom->firstChild
        );

        $current[0] = simplexml_import_dom($n);
    }

    $xml_doc = new DOMDocument('1.0', 'utf-8');
    $menu_x = $xml_doc->importNode(dom_import_simplexml($menu), true);
    $xml_doc->appendChild($menu_x);

    $menu = $xml_doc->saveXML($xml_doc->documentElement);

    if ($_echo) {
        echo $menu;
    } else {
        return $menu;
    }
}

После этого циклические ссылки исчезнут во всех категориях.

 

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

 

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


Яндекс.Метрика