0

特定の分類法からのすべての投稿を格納するページの Genesis ページネーションを作成しようとしています。この WordPress Stack Exchange で提供されている多くのソリューションを使用しますが、それらを私のものに組み込む方法がわかりませんwp_query。どうすればこれを行うことができますか?(ちなみに私はプロではありません。)

ページネーションの統合を試みる前に、これまでにテンプレートにあったものを次に示します。

remove_action('genesis_loop','genesis_do_loop');
add_action('genesis_loop','get_article_content');
function get_article_content(){
    $myterms = get_terms('article-category', 'orderby=none&hide_empty');

    foreach ($myterms as $term) :

        $args = array(
            'post_type' => 'solar-articles',
            'tax_query' => array(
                array(
                    $term->slug
                )
            ),
        );

        //  assigning variables to the loop
        global $wp_query;
        $wp_query = new WP_Query($args);
    endforeach;

    // starting loop
    while ($wp_query->have_posts()) : $wp_query->the_post();
        ?><div class="col-md-12"><?php 
            the_title( '<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>' );
            ?><p class="entry-time">POSTED <?php the_time('F j, Y'); ?></p>
            <div class="entry-content"><?php
            the_excerpt();
        ?></div></div><?php
    endwhile;
}
genesis();

統合を試した後の結果は次のとおりです。

remove_action('genesis_loop','genesis_do_loop');
add_action('genesis_loop','get_article_content');
function get_article_content(){
    $paged = 1;
    if ( get_query_var( 'paged' ) ) { $paged = get_query_var( 'paged' ); }
    if ( get_query_var( 'page' ) ) { $paged = get_query_var( 'page' ); }
    $paged = intval( $paged );
    $myterms = get_terms('article-category', 'orderby=none&hide_empty');

    foreach ($myterms as $term) :

        $args = array(
            'posts_per_page' => 3,
            'post_type' => 'solar-articles',
            'tax_query' => array(
                array(
                    $term->slug
                )
            ),
            'paged' => $paged
        );

        //  assigning variables to the loop
        global $wp_query;
        $wp_query = new WP_Query($args);

    endforeach;

    // starting loop
    while ($wp_query->have_posts()) : $wp_query->the_post();
        ?><div class="col-md-12"><?php 
            the_title( '<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>' );
            ?><p class="entry-time">POSTED <?php the_time('F j, Y'); ?></p>
            <div class="entry-content"><?php
            the_excerpt();
        ?></div></div><?php
    endwhile;
    genesis_posts_nav();
}
genesis();
4

1 に答える 1

1

foreach ループは、何かを実行する前に $wp_query 変数を上書きしているように見えます。タクソノミーがカテゴリの場合、特定のカテゴリとページネーションのみを表示するページを作成しました。これをpage-whatever.phpに入れました:

$myCategory = get_cat_ID('Knowledgebase');

remove_action('genesis_loop','genesis_do_loop');
add_action('genesis_loop', 'mry_events_do_loop');

function mry_events_do_loop() {
    global $mry_knowledgebaseCatId;
    $paged = (get_query_var('paged'))? get_query_var('paged'): 1; 
    $args = array('cat' => $mry_knowledgebaseCatId, 'posts_per_page' => 5, 'post_type' => 'post', 'paged' => $paged); 
    genesis_custom_loop($args);
}

エントリの外観をカスタマイズする方法は次のとおりです

add_action('genesis_entry_content', 'mry_entry_knowledgebase');
function mry_entry_knowledgebase(){
?>

<div class="articleImage">
     <?php 
 if(has_post_thumbnail()) {
     the_post_thumbnail(); 
     }
 else {
    echo mry_add_default_image("Thumb");
 }
 ?>
</div>
<div class="articleExcerpt">
<div class="titleArea"><a href="<?php the_permalink(); ?>"><span class="title"><h1><?php the_title(); ?></h1></span></a></div>
<div class="date"><time datetime="<?php echo get_the_date('c'); ?>"><?php echo get_the_date();?></time></div>
  <span class="excerpt"><a href="<?php the_permalink(); ?>"><?php the_excerpt(); ?></a></span>
</div>
<?php
}
于 2015-05-06T14:38:20.463 に答える