【问题标题】:.current class not changing when i click on pagination in WordPress site当我点击 WordPress 网站中的分页时,.current 类没有改​​变
【发布时间】:2016-12-28 17:21:44
【问题描述】:

我没有找到解决此类错误的任何方法。我在我的 wordpress 网站上添加了一个分页。一切正常。但是当我点击 2,3,4...等页面时它不会改变它的类.current 这就是为什么它没有得到.current 类的css。

图库功能代码:

function jellythemes_gallery($atts, $content=null) {
    extract( shortcode_atts( array(
        'limit' => -1
        ), $atts ) );
    global $post;
    $back=$post;
    echo '<div id="portfolio">
                <div class="section portfoliocontent">
                    <section id="i-portfolio" class="clear">';

      // set up or arguments for our custom query
      $paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
      $query_args = array(
        'post_type' => 'media',
        'posts_per_page' => 12,
        'paged' => $paged
      );
      // create a new instance of WP_Query
      $the_query = new WP_Query( $query_args );

    if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();

                $image = get_post_meta( $post->ID, '_jellythemes_media_photo', true );
                $video = get_post_meta( $post->ID, '_jellythemes_media_video', true );
                $img = wp_get_attachment_image_src($image, 'media_thumb');

                echo '<div class="ch-grid element">
                                <img class="ch-item" src="' . $img[0] .'" alt="' . get_the_title() . '" />';
                if (empty($video)) {
                    echo '<a class="fancybox img-lightbox" rel="" href="' . $img[0] .'">';
                } else {
                    echo '<a class="fancybox-media" rel="" href="' . $video.'">';
                }
                echo '<div>
                        <span class="p-category ' . (empty($video) ? 'photo' : 'video') . '"></span>
                          </div>
                            </a>
                            </div>';
     endwhile; 

             $post=$back; //restore post object
    $return .= '</section>
            </div>
        </div>';

    echo "<div class='pagination_center'>";
     if ($the_query->max_num_pages > 1) { 
                $current_page = max(1, get_query_var('paged'));

                echo paginate_links(array(
                    'base' => get_pagenum_link(1) . '%_%',
                    'format' => '/page/%#%',
                    'current' => $current_page,
                    'total' => $the_query->max_num_pages,
                    'show_all'  => true,
                    'prev_text' => __('« PREV'),
                    'next_text' => __('NEXT »'),
                    'prev_next' => false,
                ));
    }

     else{ 
      echo '<article>
        <h1>Sorry...</h1>
        <p>';echo 'Sorry, no posts matched your criteria.'; echo'</p>
      </article>';
    }
     endif; 
    echo "</div>";

    return $return;
}
add_shortcode( 'jellythemes_gallery', 'jellythemes_gallery' );

css:

.pagination_center .current{
border: 1px solid #c3121c;
    padding: 0px 5px;
    color: black;
    font-weight: bold;
    background: #c3121c;
}

在这里我添加了一个带有检查元素的image。它是第 2 页,但第 1 页上的 .current 类。谁能告诉我问题出在哪里?

提前致谢。如果您需要更多代码,请告诉我。

【问题讨论】:

  • 你能告诉我们分页码吗?
  • @ChoncholMahmud : 你添加类的 JS 代码在哪里?
  • 你能在这里阅读答案吗 - wordpress.stackexchange.com/questions/126080/…
  • @YoYo 我认为.current 是wordpress 类。我没有为这个类添加任何js。
  • 可以粘贴2、3、4等的onclick函数吗?

标签: php css wordpress pagination


【解决方案1】:

我也遇到了同样的问题,并在调试我的分页代码时修复了它。 这是分页在静态首页中工作的解决方案。 替换

$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;

if ( get_query_var( 'paged' ) ) {
    $paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
    $paged = get_query_var( 'page' );
}
else {
    $paged = 1;
}

在您的 WP_Query 循环中。

那你需要更换

'current' => $current_page,

'current'      => max( 1, $paged ),

在您的 paginate_links 数组中。

就我而言,它就像一个魅力。你也应该试试这个。我相信它会 100% 工作。

【讨论】:

    【解决方案2】:

    您需要为下一页更换基础。可能问题出在%_%%#% 上,如果不进行测试,它似乎没有多大帮助。但是试试下面的代码,

    $big = 999999999; // need an unlikely integer
    echo paginate_links(array(
        'base' => str_replace($big, '%#%', esc_url( get_pagenum_link($big) ) ),
        'format' => '/page/%#%',
        'current' => $current_page,
        'total' => $the_query->max_num_pages,
        'show_all' => true,
        'prev_text' => __('« PREV'),
        'next_text' => __('NEXT »'),
        'prev_next' => false,
    ));
    

    它可以帮助你。另请参阅Paginate Links

    【讨论】:

    • 我已测试但无法正常工作。 .current 课程在第 1 页中。完全没有变化。
    • $current_page 行后$current_page = max(1, get_query_var('paged')); 的值是多少,是否递增。
    • 分页改变了它的值,但不改变类.current到另一个。
    • 我看过你的网站。您需要自己调试它,方法是使用 print_r 为您在每个页面传递 paginate_links 函数的数组。
    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 2019-12-31
    • 2016-03-31
    • 2020-07-30
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2022-12-05
    相关资源
    最近更新 更多