web-dev-qa-db-ja.com

ジェネシス子テーマの投稿/エントリラッパーマークアップを変更する

これは簡単に見つけられる答えであるべきだと私は思いますが、今のところ私は何も見つけませんでした。

そのため、生成ループは自動的に投稿をdivにラップします。

    <div class="post-4006 post type-post status-publish 
format-standard hentry category-blog tag-foia tag-nmb entry">...</div>

各投稿に背景画像を追加するには、そのマークアップを変更する必要があります。おすすめの画像を撮ってdivの背景に適用しようとしているので、投稿マークが必要です

    <div style="url_to_post_thumbnail" class="post-4006 post type-post status-publish 
format-standard hentry category-blog tag-foia tag-nmb entry">...</div>

私はロジックをうまくやることができますが、私はポストラッパーを変更するためにどのようなフィルタを知らないのです。私はそれを見つけることができないようです。

3
rugbert

今日、私は同様の問題を抱えていました、そして、これは私のために働きました:

/**
 * Add and extra class to the entry-content div
 *
 */
function vdl_entry_content_extraclass( $attributes ) {
  $attributes['class'] = $attributes['class']. ' my-custom-class';
    return $attributes;
}
add_filter( 'genesis_attr_entry-content', 'vdl_entry_content_extraclass' );

私の場合は、このコードをsingle-portfolio.phpテンプレートに追加しています。そのテンプレートにはそのクラスのみを追加したいからです。このコードをfunctions.phpに貼り付けると、変更はすべてのテンプレートに適用されます。関数内で条件付きタグを使用して、この変更を適用する場所を決定することもできます。

今週は創世記から始めたのですが、これが私の最初の子供のテーマですので、これが正しい方法であるかどうかはわかりませんが、お役に立てば幸いです。

5
vicdilu

そのマークアップはgenesis_legacy_loop() Genesis関数にハードコードされています。そのマークアップに属性を追加するためのフィルタはありません。

printf( '<div class="%s">', join( ' ', get_post_class() ) );

あなたの子テーマのgenesis_legacy_loop()関数の中身を テンプレートファイルsingle.phpのような)にコピーすることによってあなた自身のカスタムループを書くことができます。その後、背景画像のロジックを追加します。

$loop_counter = 0;

if ( have_posts() ) : while ( have_posts() ) : the_post();

    do_action( 'genesis_before_post' );

    printf( '<div class="%s">', join( ' ', get_post_class() ) );

        do_action( 'genesis_before_post_title' );
        do_action( 'genesis_post_title' );
        do_action( 'genesis_after_post_title' );

        do_action( 'genesis_before_post_content' );
        echo '<div class="entry-content">';
            do_action( 'genesis_post_content' );
        echo '</div>'; //* end .entry-content
        do_action( 'genesis_after_post_content' );

    echo '</div>'; //* end .entry

    do_action( 'genesis_after_post' );
    $loop_counter++;

endwhile; //* end of one post
    do_action( 'genesis_after_endwhile' );

else : //* if no posts exist
    do_action( 'genesis_loop_else' );
endif; //* end loop

このループにすべての通常の起源アクションを残すことによって、あなたは創世記に組み込まれたすべての特徴が正しく機能することを可能にして、あなたの好みにマークアップを変えることができます。

0