フォーラムへの返信

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック投稿者 ukired

    (@ukired)

    ご回答ありがとうございました、
    Breadcrumb NavXTのプラグインに戻し、かつ、
    single.phpの時だけhave_posts内に
    設置するようにして対応することにしました。

    これで解決としたいと思います。

    トピック投稿者 ukired

    (@ukired)

    バックアップから改変前のテーマを入れて確認みました。
    Breadcrumb NavXTを再度有効化したところ、
    問題なくパンくずが表示されました。
    どうやら問題はテーマ側のようです。

    改変後、
    Breadcrumb NavXTはheader.phpに読み込んでいましたので、試しにsingle.phpの
    if hav_posts内においてみたところ問題が解消しました。

    
    <?php if(have_posts()):while(have_posts()):the_post(); ?>
    ここにパンくずを設置
    <?php endwhile; endif; ?>
    
    

    レイアウトの問題で、できればheader.php内、スマホではfooter.phpに設置したいのですが、
    have_postsの外において挙動がおかしくなるのはどうしようもないのでしょうか…?

    トピック投稿者 ukired

    (@ukired)

    そう言えば、プラグインの更新を行いました。
    その後おかしくなったので、パーマリンク設定を行ってみたのですが、問題は解決せずでした。

    テーマは未変更のままでも問題がでていたのですが、
    色々修正を試したため、現在改変された状況です。

    トピック投稿者 ukired

    (@ukired)

    海外の方でアドバイス頂き、自己解決しました。
    こちらにも書いておきます。
    query_postから、pre_get_postsに変更しました。

    function.php

    
    //pre_get_posts
    function pre_get_posts_custom($query) {
    	if( is_admin() || ! $query->is_main_query() ){
    	return;
    }
    /*=====category===== */
    if ( $query->is_category() ) {
    	$slug = $query->query_vars['category_name']; 
    	$cat = get_category_by_slug($slug);
    	$cat_id = $slug->cat_id;
    	$query->set( 'posts_per_page', '2');
    	$query->set( 'cat', $cat_id );
    	$query->set( 'orderby', 'meta_value');
    	$query->set( 'meta_key', $_GET['key']);
    	$query->set( 'meta_value', $_GET['value']);
    	return;
    	}
    }
    add_action( 'pre_get_posts', 'pre_get_posts_custom' );
    

    category.php

    
    <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    
    <!--post list-->
    
    <?php  endwhile; endif; ?>
    <nav id="pager">
    	<ul id="pager_ul">
    		<?php $maxpage = $wp_query->max_num_pages;
    			$current = $paged;
    			if(!$current){$current = 1;}
    		?>
    		<?php if(!($maxpage==1)): ?>
    			<li id="prev"><?php previous_posts_link('前へ'); ?></li>
    		<?php for($i=1; $i <= $maxpage; $i++): ?>
    		<?php if($i == $current): ?>
    			<li class="current"><?php echo $i; ?></li>
    		<?php else: ?>
    			<li><a href="<?php echo get_pagenum_link($i); ?>"><?php echo $i; ?></a></li>
    		<?php endif; ?>
    		<?php endfor; ?>
    			<li id="next"><?php next_posts_link('次へ'); ?></li>
    		<?php endif; ?>
    	</ul>
    </nav><!-- / #pager -->
    
    <?php  wp_reset_query(); ?>
    

    posts_nav_link でのページ送りから、
    変更の都合で最終的に数字のページネーションにすることになりましたので上記の表記に変えました。

    • この返信は6年、 2ヶ月前にukiredが編集しました。
4件の返信を表示中 - 1 - 4件目 (全4件中)