Títulos duplicados al usar el SEO Todo en Uno con plantilla personalizada

2

Creé una plantilla separada, attachment.php, para mostrar archivos adjuntos de imágenes. Es relativamente simple; Básicamente una versión reducida de single.php. Todo está funcionando muy bien, excepto , que cuando tengo habilitado el complemento Todo en Uno SEO (y configurado para volver a escribir títulos), los títulos en esas páginas adjuntas se duplican.

Por ejemplo, el título de este archivo adjunto debe ser "11 horas de duración de la batería del MacBook Air", pero la etiqueta del título se representa como "11 horas de duración de la batería del MacBook Air 11 horas de duración de la batería del MacBook Air"

Esto solo sucede en las páginas attachment.php, no en el resto de las publicaciones y páginas normales del sitio.

¿Alguna idea de qué podría causar eso?

    
pregunta Dave Ward 08.11.2010 - 00:59

1 respuesta

6

El problema es la forma en que se configura All in One SEO. Se supone que siempre adjuntas tus archivos multimedia a una publicación o página. La forma más sencilla es adjuntarlos a una publicación o página y hará que el título de su adjunto sea "Nombre del archivo adjuntoNombre - Nombre del blog".

La otra forma también es fácil, pero debes hacer un cambio en el complemento. Abre el archivo aioseop.class.php y encuentra este fragmento de código:


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

El problema con esta configuración es que agarra al padre, sea o no un niño. Si no tiene un padre, su título principal es su propio título, de ahí el título doble. Para remediar esto, podemos agregar una sentencia if para verificar si tiene o no un padre para evitar el doble título. Entonces el código se vería así:


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);
        }

Luego, simplemente subas esto a la carpeta del plugin Todo en Uno SEO y tu problema debería solucionarse.

Espero que ayude.

{R: S}

    
respondido por el Russell Skaggs 08.11.2010 - 05:21

Lea otras preguntas en las etiquetas