web-dev-qa-db-ja.com

ページタイトルをヘッダーに配置しますか?

通常、WordPressでは、ページタイトルはコンテンツ領域に表示されます。ページタイトルをヘッダー領域に表示したいのですが。それをするように見えます、私はそれをcontent-page.phpの現在の位置から取り除き、header.phpにそれを置かなければならないでしょう。しかし、content-page.phpは、whileループ内からcontent-pageを呼び出すpage.php(while ( have_posts() ) : the_post(); ...)から呼び出されるので、これをヘッダに移動またはコピーする必要があると思います。大変なトラブルのようです。

ヘッダのhtmlの一部をページのコンテンツに移動するほうが理にかなっていると思いますので、whileループを複数回実行する必要はありません。

(学習ツールとして、私は_s starterテーマを使用して、WordPressで既存のHTMLサイトを再作成しています。)

---編集---

答えてくれてありがとう。非常に役立ちます。これはあなたの答えに基づいたいくつかのテストの結果です。次のコードをヘッダーに(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'); ?>

私たちについてページから見ると、次のようになります。

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

私のホームページから見たとき、私は得る:

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

そして、 "Hello World"投稿から見たとき、私は得ます:

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

結論:the_title()またはsingle_post_title()を使用できます(wp_titleは必要以上のテキストを返します)。投稿を表示しているときに特定のページ名を表示するには、is_page(...)をテストします。

ありがとうございました!

2
user781470

タイトルだけが必要な場合は、ループの外で簡単にリクエストできます。

ヘッダーでthe_title()を呼び出してみてください。うまくいくはずです

ただし、条件を設定しないと、Webサイトの各ページのヘッダーセクションにタイトルが表示されます。

編集:get_the_title($post->ID)はポストIDを引数として指定することを許可していないので、呼び出す関数はthe_title()です。あなたは Wordpress Codex for関数をチェックしてあなたのループの外であなたの投稿から情報を問い合わせることができます。

3
mathieuhays

あなたはwp_title()を使う必要があります。

あなたがそのように投稿タイトルを使用しようとしているなら:

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

Wp_title( ''、true、 '')を追加する必要があります。

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

例:あなたの投稿名がHello Worldの場合、Hello Worldはタブに表示されます。

http://codex.wordpress.org/Function_Reference/wp_title

4
user3325126

上記の方法はしばらくの間は動作していますが、WordPressのコア開発者は次のように を推奨します

4.1と15から始まって、タイトルを表示するためのテーマのために推薦される方法はこのようなテーマサポートを加えることによってです: - Konstantin Obenland

この行をテーマのfunctions.phpファイルの after_setup_theme の後に追加することもできます。または

同じページから

4.1と15から始まって、タイトルを表示するためのテーマのための推奨される方法は、このようなテーマサポートを追加することです:

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

After_setup_themeまたはinitアクションにサポートを追加する必要がありますが、それ以降にはしないでください。それ以上の議論は受け付けません。

これは、header.phpファイルにハードコードされたタグを使用せずに、WordPressにヘッダーのページタイトルを選択させることです。

あなたのタイトルは以下のフォーマットで表示されます。

Page Title - Site Title

0
Vishwa