web-dev-qa-db-ja.com

The_title()を使わずに投稿のタイトルを取得します。

ノブの質問the_title()を使用せずに投稿のタイトルを取得する別の方法はありますか。

私は文字列パラメータを取る関数を使用しているので私は尋ねている、そしていくつかのコードの後、この文字列を返す。 the_title()を渡したとき。このパラメータとして、何らかの理由で文字列として渡されないため、メソッドは失敗します。

The_title()の代わりに "some random string"を渡すと。機能は正しく動作します。

理にかなって?

4
Romes

これは the_title() が投稿のタイトルをエコーするからです(リンクされたドキュメンテーションを見てください)。タイトルを文字列として返す代わりに get_the_title() を使用してください。

編集する

2つの選択肢があります。

  1. 投稿のタイトルをエコーではなく返すには、 get_the_title() を使用します。
  2. 投稿のタイトルとしてカスタム文字列を表示するには、 the_title をフィルタリングします。

get_the_title()を使う

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

the_titleフィルタを使う

<?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' );
?>
6
Stephen Harris