WordPress как на ладони
wordpress jino

Как бороться с дублями или canonical?

Посте того как я избавился от All in One SEO Pack сменив его на код все просто супер. Но вот в плагине была замечательная функция тег canonical, которая указывала поисковикам оригинал. Как теперь с этим бороться, подскажите. Как Вы с этим боритесь?

Заметки к вопросу:
penuel82 3.1 года назад

Понял! Моя ошибка! Я опускал скрипты в футер вот этим скриптом

<?php
/**
 * Load Enqueued Scripts in the Footer
 *
 * Automatically move JavaScript code to page footer, speeding up page loading time.
 */
function footer_enqueue_scripts() {
	remove_action('wp_head', 'wp_print_scripts');
	remove_action('wp_head', 'wp_print_head_scripts', 9);
	remove_action('wp_head', 'wp_enqueue_scripts', 1);
	add_action('wp_footer', 'wp_print_scripts', 5);
	add_action('wp_footer', 'wp_enqueue_scripts', 5);
	add_action('wp_footer', 'wp_print_head_scripts', 5);

то стал работать не корректно!
Я то и его переместил в футер. Наверное что то неправильно поступил?

Когда речь идет о перемещении в футер то идет речь вот об это

<?php wp_head(); ?>
Kama 3.1 года назад

Мало что понятно, если честно. Приведенный код никак не влияет на каноническую ссылку. Она в движке добавляется так (файл wp-includes/default-filters.php строка 210):

add_action( "wp_head", "rel_canonical" );

А удаляется так:

remove_action( "wp_head", "rel_canonical" );
penuel82 3.1 года назад

Ну значит у меня ее вовсе нет! Вот код моего heder.php

<!DOCTYPE html>
<html>
<head>
<title><?php kama_meta_title (" | "); ?></title>
	<?php kama_meta_description () ?>
	<?php kama_meta_keywords () ?>
	<?php kama_meta_robots () ?>

	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
	<meta name="generator" content="WordPress 3.8.1" /> <!-- leave this for stats please -->

	<link rel="stylesheet" href="http://www.industrialist.net.ua/wp-content/themes/azul/style.css" type="text/css" media="screen" />
	<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.industrialist.net.ua/feed" />
	<link rel="alternate" type="text/xml" title="RSS .92" href="http://www.industrialist.net.ua/feed/rss" />
	<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="http://www.industrialist.net.ua/feed/atom" />
	<link rel="pingback" href="http://www.industrialist.net.ua/xmlrpc.php" />
</head>
<body>

	<div id="container">

<div id="header">
	<?php if (is_home ()){ ?>
<h1 align="center"><?php bloginfo ('info'); ?></h1>

<?php } else {?>

<p align="center"><a href="<?php bloginfo ('url'); ?>"><?php bloginfo ('info'); ?></a></p>

<?php } ?>

	<div id="search">

		<?php include(TEMPLATEPATH . '/searchform.php'); ?>

	</div>

</div>

<div id="navbar">

	<?php wp_page_menu('show_home=1'); ?>

</div>

а код

<?php wp_head(); ?>

я перенес в футер, он выдает скрипты в html

Kama 3.1 года назад

Верните <?php wp_head(); ?> в head блок! Нельзя его переносить в footer есть wp_footer();. Зачем вы это сделали? Вы же сами в первой заметке дали код как перенести все скрипты из head в footer зачем еще wp_head(); переносить? Что-то вы мудрите, такими темпами вы только и будите что баги отлавливать, при каждом редактировании шаблона...

penuel82 3.1 года назад

Борюсь за ускорение и избавляюсь от скриптов в хедере

вернул на место

<?php wp_head(); ?>

он выдает код в html

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://www.industrialist.net.ua/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://www.industrialist.net.ua/wp-includes/wlwmanifest.xml" /> 
<meta name="generator" content="WordPress 3.8.1" />

Это нормально ?

Kama 3.1 года назад

Нормально! Для ускорения и переноса скриптов в footer используйте плагин: Autoptimize

penuel82 3.1 года назад

а код

<?php
/**
 * Load Enqueued Scripts in the Footer
 *
 * Automatically move JavaScript code to page footer, speeding up page loading time.
 */
function footer_enqueue_scripts() {
	remove_action('wp_head', 'wp_print_scripts');
	remove_action('wp_head', 'wp_print_head_scripts', 9);
	remove_action('wp_head', 'wp_enqueue_scripts', 1);
	add_action('wp_footer', 'wp_print_scripts', 5);
	add_action('wp_footer', 'wp_enqueue_scripts', 5);
	add_action('wp_footer', 'wp_print_head_scripts', 5);

можно удалить ?

Kama 3.1 года назад

При использовании плагина, можно. Потестируйте. Если с этим кодом все работает, то можно и оставить...

1
3.2 года назад
  • 0
    Kama4713

    Я никак не борюсь, как в WordPress по умолчанию есть, так и стоит.

    вот в плагине была замечательная функция тег canonical

    В каких случаях она вам помогала, можно узнать? Как вы её использовали?

    C версии 2.3 WordPress сам выставляет тег canonical для страниц типа is_single(). Т.е. по идее для страниц комментариев дублирования не происходит. Чтобы удалить этот тег, нужно удалить этот фильтр:

    remove_action( "wp_head", "rel_canonical" );

    Вот таким кодом можно заменить стандартную функцию rel_canonical():

    # удалим WordPress canonical URL по умолчанию
    remove_action( 'wp_head', 'rel_canonical' );
    # добавим свою каноническую ссылку
    add_action( 'wp_head', 'kama_meta_canonical' );
    /*
     * Аналог rel_canonical в WordPress, которая позволяет кастомно 
     * указать каноническую ссылку в произвольных полях. 
     * Для этого создайте у поста произвольное поле canonical, а в значении укажите ссылку
     */
    function kama_meta_canonical(){
    	if( !is_singular() ) return;
    
    	global $wp_the_query;
    	if( ! $id = $wp_the_query->get_queried_object_id() )
    		return;
    
    	# проверим произвльное поле у поста "canonical"
    	$canonical_url = get_post_meta( $id, 'canonical', 1 );
    	if( $canonical_url = get_post_meta( $id, 'canonical', 1 ) )
    		$link = esc_url( $canonical_url );
    	else
    		$link = get_permalink( $id );
    
    	echo '<link rel="canonical" href="' . $link . '" />'. "\n";
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.

Бухгалтерский учет операций по расчетному счету организации

На нашем сайте бухгалтерский учет операций по расчетному счету организации для вас со скидками.

gsl.org