web-dev-qa-db-ja.com

頭の後ろでポストの前にフックを追加するなど、頭の後に何かできることはありますか

つまり、ブログにブレッドクラムを追加しようとしているのですが、コンテンツの前やタイトルの後にブレッドクラムを追加することを考えていましたが、アーカイブページやカテゴリページに投稿ごとにブレッドクラムが表示されます。

だから私は頭のように - ポストの上の何かにブレッドクラムを付ける必要があると考えました。

どうやってやるの ?

これは私がこれまでにコンテンツに対して行ったことです。

add_filter( 'the_content', array($this, 'adding_bread_crumbs') );
function adding_bread_crumbs( $content ) {
    /* Getting the current page permalink and site url */
    $pageURl = preg_replace('/\/$/','',get_permalink());
    $homeURL = preg_replace('/\/$/','',site_url());

    if ( function_exists('yoast_breadcrumb')) {
        /* Checking if the current page is home page */
        if($pageURl != $homeURL && !is_page('Home')){
            $breadcrumbs = '<div class="breadcrumbHolder">';
            $breadcrumbs .= yoast_breadcrumb('<p id="breadcrumbs">','</p>',false);
            $breadcrumbs .= '</div>';
            $content = $breadcrumbs.$content;
        }
    }
    return $content;
}

'the_content'を別のフックに置き換えるものはありますか?または私が使用しなければならないアクションはありますか?

ありがとう

1
Neta Meta

私が知っている限りでは、私があなたを理解していれば、あなたが必要とする場所にフックはありません。私が考えることができる最も近いのは、 loop_start です。これは、ループの開始時に予想通り実行される可能性があります。このフックの問題点は、ドキュメントの<head>とLoopが実行される場所の間にテーマがどのようなコンテンツを持っているのかわからないということです。

これまでのところ最良の解決策は、テーマを作成した場合は機能性、つまり独自のフックをテーマに編集するか、子テーマを作成して他のユーザーのテーマを使用している場合はそれを編集することです。

4
s_ha_dum

あなたのテーマの中で、あなたがあなたの出力を見せたいところであればどこでも、以下を加えてください:

do_action( 'my_sweet_hook' );

そうすればadd_action( 'my_sweet_hook'、 'my_sweet_breadcrumbs')を使うことができます。そこにあなたのコンテンツを表示するために(適切な機能コードと共に)。

0
MadtownLems