• Здравствуйте!

    На сайте https://terrazn.by выводятся двойные теги title. Т. е. получается тайтл такого вида <title>Сколько грозовых дней в разных городах Беларуси? | Купить молниезащиту и заземление в Беларуси, Минске</title>
    https://terrazn.by/poleznoe/grozovie-dni-v-belarusi/

    Понятно, что вторая часть тайтла «Купить молниезащиту и заземление в Беларуси, Минске» выводится из заголовка, который меняется в Настройки\Общие. Если его убрать, то тайтлы станут более-менее нормального вида: «Сколько грозовых дней в разных городах Беларуси? |»

    Почему говорю более-менее? Потому как эта вертикальная черточка нафиг не нужна «|»

    Но самое главное в том, что если оставить пустым поле заголовка в Настройки\Общие, то на главной странице, которая выводится отдельно через front-page.php вообще не будет никакого тайтла.

    Метатеги на страницах и записях (тайтлы, дискриптионы и прочее) выводятся через встроенные поля в админку (такой себе собственный All in one seopack). На всех страницах нормально выводятся метатеги если задействовать эти поля, кроме главной. На главной выводятся с помощью этих полей только теги дескриптион и кейвордс. Тайтл все равно берется из Настройки\Общие

    All in one seopack не помогает.

    Как сделать так, чтобы тег на главной можно было бы выводить без заголовка в Настройки\Общие и без этой черточки?

    Привожу кусок кода, который отвечает за метатеги на страницах\записях в header.php:

    
    <?php  // title
    if(is_category()){
    	$seo_title_category = get_field('title', $category_id);
    	if($seo_title_category != ""){
    		echo "<title>" . $seo_title_category . "</title>";
    	}else{
    		$seo_title_category = single_cat_title("", 0);
    		echo "<title>" . $seo_title_category . "</title>";
    	}
    }elseif(is_front_page()){
    	$seo_title = get_field('title');
    	if($seo_title != ""){
    		echo "<title>" . 777 . "</title>";
    	}else{
    		echo "<title></title>";
    	}
    }elseif(is_single() || is_page()){
    	$seo_title = get_field('title');
    	if($seo_title != ""){
    		echo "<title>" . $seo_title . "</title>";
    	}else{
    		$seo_title = get_the_title();
    		echo "<title>" . $seo_title . "</title>";
    	}
    }elseif(is_tag()){
    	$seo_title_tag = get_field('title', $tag_id);
    	if($seo_title_tag != ""){
    		echo "<title>" . $seo_title_tag . "</title>";
    	}else{
    		$seo_title_tag = single_tag_title("", 0);
    		echo "<title>" . $seo_title_tag . "</title>";
    	}
    }
    ?>
    
    <?php  //keywords
    if(is_category()) { ?>
    <?php $seo_keywords_category = get_field('keywords', $category_id); ?>
    
    <?php if($seo_keywords_category != ""){ ?>
    <meta name="keywords" content="<?php echo $seo_keywords_category; ?>">
    <?php }else{
    	$seo_keywords_category = single_cat_title("", 0); ?>
    	<meta name="keywords" content="<?php echo $seo_keywords_category; ?>">
    	<?php } ?>
    
    	<?php } elseif(is_front_page()) { ?>
    	<?php $seo_keywords = get_field('keywords'); ?>
    
    	<?php if($seo_keywords != ""){ ?>
    	<meta name="keywords" content="<?php echo $seo_keywords; ?>">
    	<?php }else{ ?>
    	<meta name="keywords" content="">
    	<?php } ?>
    
    	<?php }elseif(is_single() || is_page()){ ?>
    
    	<?php $seo_keywords = get_field('keywords'); ?>
    
    	<?php if($seo_keywords != ""){ ?>
    	<meta name="keywords" content="<?php echo $seo_keywords; ?>">
    	<?php }else{ ?>
    	<meta name="keywords" content="<?php the_title(); ?>">
    	<?php } ?>
    
    	<?php }elseif(is_tag()){ ?>
    
    	<?php $seo_keywords_tag = get_field('keywords', $tag_id); ?>
    
    	<?php if($seo_keywords_tag != ""){ ?>
    	<meta name="keywords" content="<?php echo $seo_keywords_tag; ?>">
    	<?php }else{
    		$seo_keywords_tag = single_tag_title("", 0); ?>
    		<meta name="keywords" content="<?php echo $seo_keywords_tag; ?>">
    		<?php } ?>
    
    		<?php } ?>
    
    <?php  //description
    
    if(is_category()){ ?>
    
    <?php $seo_description_category = get_field('description', $category_id); ?>
    
    <?php if($seo_description_category != ""){ ?>
    <meta name="description" content="<?php echo $seo_description_category; ?>">
    <?php }else{
    	$seo_description_category = single_cat_title("", 0); ?>
    	<meta name="description" content="<?php echo $seo_description_category; ?>">
    	<?php } ?>
    
    	<?php }elseif(is_front_page()){ ?>
    
    	<?php  $seo_description = get_field('description'); ?>
    
    	<?php if($seo_description != ""){ ?>
    	<meta name="description" content="<?php echo $seo_description; ?>">
    	<?php }else{ ?>
    	<meta name="description" content="">
    	<?php } ?>
    
    	<?php }elseif(is_single() || is_page()){ ?>
    
    	<?php  $seo_description = get_field('description'); ?>
    
    	<?php if($seo_description != ""){ ?>
    	<meta name="description" content="<?php echo $seo_description; ?>">
    	<?php }else{ ?>
    	<meta name="description" content="<?php the_title(); ?>">
    	<?php } ?>
    
    	<?php }elseif(is_tag()){ ?>
    
    	<?php $seo_description_tag = get_field('description', $tag_id); ?>
    
    	<?php if($seo_description_tag != ""){ ?>
    	<meta name="description" content="<?php echo $seo_description_tag; ?>">
    	<?php }else{
    		$seo_description_tag = single_tag_title("", 0); ?>
    		<meta name="description" content="<?php echo $seo_description_tag; ?>">
    		<?php } ?>
    
    		<?php } ?>
    

    Как я понял, за вывод тайтла на главной отвечает этот код:

    
    }elseif(is_front_page()){
    	$seo_title = get_field('title');
    	if($seo_title != ""){
    		echo "<title>" . 777 . "</title>";
    	}else{
    		echo "<title></title>";
    	}
    

    Только вот, что править?

    Заранее спасибо.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Метатеги на страницах и записях (тайтлы, дискриптионы и прочее) выводятся через встроенные поля в админку (такой себе собственный All in one seopack).

    Почему бы не заменить этот код на полноценный плагин?

    На какой заменить и зачем?

    Все работает, кроме этого досадного тайтла на главной странице. Может быть его как-то подправить?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    На какой заменить и зачем?

    All in One SEO Pack или Yoast SEO. Вы же сами пишете, что проблема не только с главной, но и с дублированием заголовков на других страницах.

    All in one seopack не помогает.

    Не помогает в сочетании с данным фрагментом, но сам по себе любой из этих плагинов в общем случае вполне корректно работает.

    эта вертикальная черточка нафиг не нужна «|»

    В приведённом фрагменте вертикальной черты нет — значит, он либо неполный, либо результат дополнительно модифицируется другой функцией темы или каким-то плагином.

    Может быть его как-то подправить?

    Попробуйте добавить нужный заголовок в echo "<title></title>".

    Вместо }elseif(is_front_page()){
    $seo_title = get_field(‘title’);
    if($seo_title != «»){
    echo «<title>» . $seo_title . «</title>»;
    }else{
    echo «<title></title>»;
    }

    я сделал

    }elseif(is_front_page()){

    echo «<title>777</title>»;

    }

    Не хочет принимать правки. пишет:

    Ваши изменения в коде PHP были отменены из за ошибки на строке 28 файла wp-content/themes/terrazan/header.php. Исправьте и попробуйте пересохранить.

    syntax error, unexpected ‘}’, expecting end of file

    Что сделал не так?

    Что сделал не так?

    1. То, что вообще полезли править файлы в встроенном редакторе WP, вместо того, чтобы делать это по уму в менеджере файлов хостинга (если есть такой на хостинге) или через ftp
    2. То, что продолжаете занимаетесь самодеятельностью, вместо того чтобы откатить свои косяки и использовать полноценный seo плагин, о чем вам уже было сказано.

    • Ответ изменён 6 лет, 9 месяцев назад пользователем O.

    1. Спасибо за совет. Попробую через фтп.

    2. Поймите, что сайт хоть и на вордпрессе, но является сильно доработанным сторонними специалистами ресурсом. Пробовал сделать все через All in one…, но на главной странице все равно выводится title из заголовка в настройках.

    1. Вариант не помог. Сайт перестал выводится. Пришлось откатить.

    2. Попробую использовать Yoast SEO. Может быть чем-то поможет.

    сайт хоть и на вордпрессе, но является сильно доработанным сторонними специалистами ресурсом

    И тема похоже самописная?
    Если все это так, а те специалисты сгинули и сайт передали вам — самое разумное поменять тему оформления. Я в аналогичном случае поступил именно так и до сих пор счастлив, что в своё время мне хватило смелости и решительности принять такое решение.

    Если этого не сделать — считайте, что все ваши проблемы только начинаются.

    Все верно, самописная. Она нас в остальном устраивает. Попробуем так поправить, потому как новый шаблон — такой геморрой…

    Решил проблему, только не бейте сильно. Я думал, что здесь только в коде можно поправить ситуацию и не пытался заглянуть в настройки All i one seopack, а оно вон как легко все оказалось. Зашел в настройки. Убрал | %blog_title% и все наладилось.

    Проблема решена. Всем откликнувшимся большое спасибо.

    Добрый день. Подскажите, что мне убрать, чтобы двойной title не выводился?

    http://prntscr.com/k222pb

    Модератор Yui

    (@fierevere)

    永子

    https://ru.wordpress.org/support/forum-rules/
    п2
    не задавайте свои вопросы в чужой теме

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • Тема «Выводится двойной title» закрыта для новых ответов.