¿Poner el título de la página en el encabezado?

2

Normalmente, en WordPress, el título de la página aparece en el área de contenido. Me gustaría que el título de la página aparezca en el área del encabezado. Parece que para hacer eso, tendría que eliminarlo de su ubicación actual en content-page.php y colocarlo en header.php. Pero se llama a content-page.php desde page.php, que llama a la página de contenido dentro de un bucle while ( while ( have_posts() ) : the_post(); ... ), así que creo que también tendría que mover o copiar esto en el encabezado. Parece un montón de problemas

¿Tendría más sentido mover parte del encabezado html al contenido de la página, para que no tenga que ejecutar el ciclo while más de una vez?

(Como herramienta de aprendizaje, estoy recreando un sitio HTML existente con WordPress, utilizando el tema de inicio _s)

--- EDIT --- ---

Gracias por las respuestas. Muy útil. Aquí están los resultados de algunas pruebas, basadas en sus respuestas. Dado el siguiente código, en el encabezado (fuera de Loop):

wp_title(): <?php wp_title('', true,''); ?><br>
the_title(): <?php the_title(); ?><br>
single_post_title(): <?php single_post_title(); ?><br>
$post->post_name: <?php echo 'page name: ' . $post->post_name; ?><br>
ispage? : <?php echo (is_page() ? 'yes' : 'no'); ?><br>
ispage(about-us) : <?php echo (is_page('about-us') ? 'yes' : 'no'); ?><br>
ispage(About Us) : <?php echo (is_page('About Us') ? 'yes' : 'no'); ?>

Cuando se visualiza desde mi página Acerca de nosotros, aparece:

wp_title() About UsAt The Tabernacle
the_title(): About Us
single_post_title(): About Us
$post->post_name: page name: about-us
ispage? : yes
ispage(about-us) : yes
ispage(About Us) : yes

Cuando se ve desde mi página de inicio, obtengo:

wp_title(): At The Tabernacle My site motto here
the_title(): Home
single_post_title(): Home
$post->post_name: page name: home
ispage? : yes
ispage(about-us) : no
ispage(About Us) : no

Y cuando se ve desde una publicación de "Hello World", obtengo:

wp_title(): Hello world!At The Tabernacle
the_title(): Hello world!
single_post_title(): Hello world!
$post->post_name: page name: hello-world
ispage? : no
ispage(about-us) : no
ispage(About Us) : no

Conclusión: puedo usar the_title () o single_post_title () (wp_title devuelve más texto del que quiero). Y puedo probar is_page (...) para mostrar un nombre de página específico cuando estoy viendo una publicación.

¡Gracias!

    
pregunta user781470 15.02.2015 - 00:51

3 respuestas

3

Si solo necesita el título, puede solicitarlo fuera del bucle fácilmente.

Prueba y llama a the_title() en tu encabezado. Debería funcionar

Pero debes tener en cuenta que si no pones una condición, cada página de tu sitio web mostrará su título en la sección del encabezado.

EDITAR: la función a la que llamar es get_the_title($post->ID) , ya que the_title() no le permite especificar el ID de la publicación como un argumento. Puede consultar el Wordpress Codex para conocer la función que le permite consultar información de su publicación fuera del circuito.

    
respondido por el mathieuhays 15.02.2015 - 03:04
4

Necesitas usar wp_title ();

Si estás intentando usar el título de la publicación de esta forma:

<head> 
 <title> post title here </title> 
</head>

Necesitarías agregar el wp_title ('', true, '');

<head>
 <title> <?php wp_title('', true,''); ?> </title>
</head>

Por ejemplo: si el nombre de tu publicación era Hello World, Hello World ahora aparecerá en la pestaña.

enlace

    
respondido por el user3325126 15.02.2015 - 03:38
0

Mientras que los métodos mencionados anteriormente están funcionando por el momento, los desarrolladores principales de WordPress recomienda como sigue:

  

A partir de 4.1 y Twenty Fifteen, la forma recomendada para los temas   para mostrar títulos es agregando soporte de tema como este:   - Konstantin Obenland

Puedes agregar esta línea en el archivo functions.php de tu tema después de after_setup_theme .      o

de la misma página,

  

A partir de 4.1 y Twenty Fifteen, la forma recomendada para los temas   para mostrar títulos es agregando soporte de temas como este:

function theme_slug_setup() {
    add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'theme_slug_setup' );
     

Se debe agregar soporte en la acción after_setup_theme o init, pero   no más tarde que eso. No acepta más argumentos.

Lo que esto hace es dejar que WordPress elija el título de la página en el encabezado, sin usar etiquetas codificadas en el archivo header.php.

su título se mostrará con el siguiente formato.

Page Title - Site Title

    
respondido por el Vishwa 15.11.2018 - 10:05

Lea otras preguntas en las etiquetas