注目のコンテンツをオリジナルの順序でホームページに投稿し続ける


17

クエリの投稿から除外せずに、ブログのホームページで注目の投稿を保持する方法を探しています。私のブログでは、Twenty Fourteenテーマを使用しています。私はこの解決策を見つけました。

テーマのincフォルダーからfeatured-content.phpを開き、次のコード(この場合は269行目)を探します。

$query->set( 'post__not_in', $featured );

これを取得するには、この行の前に2つのスラッシュを追加して、この行をコメントアウトします。

// $query->set( 'post__not_in', $featured );

しかし、ファイルにはその行がなく、子テーマは親テーマのincフォルダーをオーバーライドできません。

私は別の解決策を見つけましたが、それは機能しますが、問題は、このコードが元の順序ではなく、注目コンテンツの投稿を表示することです。古いコンテンツの投稿-注目投稿を作成するためにスティッキー投稿を使用している場合-注目投稿になると、注目コンテンツ投稿が最初の注文になり、次に他の投稿になります。

このような条件付きタグを使用してみました。

function show_featured_content_on_home() {
if ( !is_home() ) {
remove_action( 'pre_get_posts', array( 'Featured_Content', 'pre_get_posts' ) );
    }
}
add_action( 'init', 'show_featured_content_on_home', 31 );

2番目のページなどは-注目の投稿を順番に表示します-しかし、ホームページにはまだ問題があります。

助言がありますか?


答えがあると思います。機能させるには、スティッキーポストを使用して注目コンテンツを作成するのではなく、「注目」タグを使用する必要があります。解決策は正しいので、私は間違った理解を持ち、間違った質問をします。条件タグは、コードが条件タグなしで機能するため、削除できます。
ナチマンアズリー14年

1
私はこれがかなり遅いことを知っていますが、答えとして上記のコメントを追加してくれませんか?この質問にはかなりの賛成票があり、適切な答えがあればそれはより明白になります。前もって感謝します!
クラフトナー

回答:


1

WPQueryを使用できると思います

    $the_query = new WP_Query( array( 'post__in' => get_option( 'sticky_posts' )) ); ?>

    <?php if ( $the_query->have_posts() ) : ?>

        <!-- pagination here -->

        <!-- the loop -->
        <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>   
<h2><?php the_title(); ?></h2>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->

        <?php wp_reset_postdata(); ?>


    <?php endif; ?>

投稿を注文するには、orderとorderbyを使用できますhttps://codex.wordpress.org/Class_Reference/WP_Queryを参照して ください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.