web-dev-qa-db-ja.com

静的フロントページからページタイトルを削除する

静的フロントページから投稿のタイトルを削除したいです。そのページだけ。無料のPress75テーマから子テーマを作成しました。だから私は私の子供のテーマのfunction.phpにこの変更を加えたいと思います。

このコードを使用しましたが、すべてのページ、投稿、およびナビゲーションからタイトルが削除されます。

add_filter( 'the_title', 'remove_page_title' );

function remove_page_title() {
    if(is_page('138')) {
    }
    return '';
}

ID 138のページからタイトルを削除するだけだと思いました。何が間違っていますか。

ありがとうございます。

1

add_filter関数呼び出しを条件付きタグで囲み、組み込みのreturn false関数を使用します。

if ( is_page('138') )
{
      add_filter( 'the_title', '__return_false' );
}
2
kaiser

あなたはほとんどそれを持っています!

元のコードは次のとおりです。

add_filter( 'the_title', 'remove_page_title' );

function remove_page_title() {
   if(is_page('138')) {
   }
   return '';
}

それがしていることは、the_titleにパラメーターを追加しないフィルターを追加することです。それが最初の間違いです。 the_titleフィルターは、実際には2つのパラメーター(ページ/投稿タイトルとページ/投稿ID)を取ります。まず、フックを書き直しましょう。

add_filter( 'the_title', 'remove_page_title', 10, 2 );
function remove_page_title( $title, $id ) {

}

これにより、フィルターに優先度10が割り当てられ、フィルターによって送信された両方のパラメーターを受け入れることができます。次に、関数が受け入れるパラメーターを指定します。

関数内で、正しいページにいるかどうかを確認します。存在する場合、''を返します。タイトルを返さない場合:

if( '138' == $id ) return '';

return $title;

元の関数はalwaysフィルターの実行時に''を返していました。そのため、必要なページだけでなく、すべてのページで空白のタイトルが表示されていました。

完全なコード

したがって、パラメーターを受け入れて適切なロジックを使用するように書き換えられた完全なフィルター:

add_filter( 'the_title', 'remove_page_title', 10, 2 );

function remove_page_title( $title, $id ) {
    if( '138' == $id ) return '';

    return $title;
}
0
EAMann

Header.phpの1つの方法:

<?php if (is_page('138')) { echo'
<style type="text/css" title="text/css">
yourpagetitleselector {display:none;}
</style>'
; ?>
0
markratledge