Intereting Posts

Удвоенные названия при использовании All in One SEO с пользовательским шаблоном

Я создал отдельный шаблон, attachment.php, для отображения вложений изображений. Это относительно просто; в основном урезанная версия single.php. Все работает отлично, за исключением того, что когда у меня включен плагин «Все в одном» (и настроен на переписывание названий), заголовки на этих страницах вложений удваиваются.

Например, заголовок этого приложения должен быть «11 часов автономной работы MacBook Air», но тег заголовка отображается как «11 часов автономной работы MacBook Air 11 часов автономной работы MacBook Air»,

Это происходит только на страницах attachment.php, а не на остальных обычных страницах и страницах сайта.

Любая идея, что может вызвать это?

Solutions Collecting From Web of "Удвоенные названия при использовании All in One SEO с пользовательским шаблоном"

Проблема заключается в том, как настраивается All in One SEO. Он предполагает, что вы всегда прикрепляете свои медиафайлы к сообщению или странице. Простым способом является прикрепление их к сообщению или странице, и это сделает заголовок вложения «PostName AttachmentName – Blogname».

Другой способ также прост, но вы должны внести изменения в плагин. Вы открываете файл aioseop.class.php и находите этот фрагмент кода:

else if (is_attachment()) { $title = get_the_title($post->post_parent).' '.$post->post_title.' – '.get_option('blogname'); $header = $this->replace_title($header,$title); } 

Проблема с этой настройкой заключается в том, что она захватывает родителя независимо от того, является ли он дочерним. Если у него нет родителя, его родительский заголовок – это его собственный заголовок, следовательно, двойной заголовок. Чтобы исправить это, мы можем добавить оператор if, чтобы проверить, имеет ли он родителя, чтобы избежать двойного заголовка. Таким образом, код будет выглядеть так:

 else if (is_attachment()) { if(get_the_title($post->post_parent) != $post->post_title) { $title = get_the_title($post->post_parent).' '.$post->post_title.' – '.get_option('blogname'); } else { $title = $post->post_title.' – '.get_option('blogname'); } $header = $this->replace_title($header,$title); } 

Затем вы просто загружаете это в папку плагина «Все в одном» и ваша проблема должна быть исправлена.

Надеюсь, это поможет.

{R: S}