Obter título da postagem sem usar the_title ();

4

Eu estou perguntando porque eu estou usando uma função, pegue um parâmetro de string, depois de algum código, retorna esta string. Quando eu passo em the_title (); como esse parâmetro, por alguma razão ele não está vindo como uma string, portanto, o método falha.

Quando eu passo "alguma string aleatória" em vez de the_title (); a função funciona corretamente.

Faz sentido?

    
por Romes 10.04.2012 / 18:46

1 resposta

6

Isso ocorre porque o the_title() exibe o título da postagem (consulte a documentação vinculada). Use get_the_title() em vez disso, que retorna o título como uma string.

Editar

Você tem duas opções:

  1. Use get_the_title() para retornar, em vez de fazer eco, o título da postagem
  2. Filtre the_title para fazer o eco de uma string personalizada como o título da postagem

Usando get_the_title()

<?php
// NOTE: Inside the Loop,
// or else pass $post->ID
// as a parameter
$post_title = get_the_title();
?>

Usando the_title filter

<?php
function wpse48523_filter_the_title( $title ) {
    // Modify or replace $title
    // then return the result
    // For example, to replace,
    // simply return your own value:
    // return 'SOME CUSTOM STRING';
    //
    // Or, you can append the original title
    // return $title . 'SOME CUSTOM STRING'
    //
    // Just be sure to return *something*
    return $title . ' appended string';
}
add_filter( 'the_title', 'wpse48523_filter_the_title' );
?>
    
por Stephen Harris 10.04.2012 / 18:54

Tags