Php WordPress-添加分页-visual composer

Php WordPress-添加分页-visual composer,php,wordpress,pagination,Php,Wordpress,Pagination,我有一个WordPress主题,它使用VisualComposer内置插件。blog和porfolio位于一个函数中,然后在页面上用短代码表示。每当我尝试添加一些分页函数时,它都不起作用。分页在其他“正常”页面上工作,如归档或搜索。有什么线索吗 <?php function hsv_blog( $atts, $content = '', $id = '' ) { extract( shortcode_atts( array( 'id' => '',

我有一个WordPress主题,它使用VisualComposer内置插件。blog和porfolio位于一个函数中,然后在页面上用短代码表示。每当我尝试添加一些分页函数时,它都不起作用。分页在其他“正常”页面上工作,如归档或搜索。有什么线索吗

<?php function hsv_blog( $atts, $content = '', $id = '' ) {

extract( shortcode_atts( array(
    'id'              => '',
    'class'           => '',
    'cats'            => '',
    'limit'           => '',
    'page_name'       => '',
    ), $atts ) );

$args = array(
    'post_type' => 'post',
    'posts_per_page'    =>  $limit,
    'tax_query'     => array(
        array(
            'taxonomy'  => 'category',
            'field'     => 'ids',
            'terms'     => explode(',', $cats),
            ),
        )
    );

ob_start();

$q = new WP_Query( $args );

if ( $q->have_posts() ) while ( $q->have_posts() ) : $q->the_post();
$post_format = (get_post_format() == true) ? get_post_format():'standard';

switch ($post_format) {
    case 'aside':
    case 'quote':
    $class = ' grey';
    break;

    default:
    $class = '';
    break;
}

global $hsv_opt;
// general settings
$type_website = $hsv_opt['general-type-website'];
$pg_class = ( $type_website == 2 ) ? ' home' : ''; ?>
<div id="post-<?php the_ID(); ?>" <?php post_class('element clearfix col1-3 blog auto bi'.$class.$pg_class); ?>>
    <?php get_template_part('post-formats/content', $post_format ); ?> </div> <?php endwhile; ?> <?php wp_reset_query(); ?> <?php return ob_get_clean(); } add_shortcode( 'hsv_blog', 'hsv_blog' ); ?>


我也遇到了同样的问题,试图在VisualComposer中创建一个元素来显示我自定义帖子中的元素

解决方案:在while循环中添加:
$totalPages=$q->max\u num\u pages
现在您可以将
$totalPages
传递给分页函数

在下面,我添加了我的分页功能

用法示例:
my_分页($totalPages)

函数我的分页($pages='',$range=2){
$showitems=($range*2)+1;
全球$paged;
如果(空($paged))$paged=1;
如果($pages==''){
全局$wp_查询;
$pages=$wp\u query->max\u num\u pages;
如果(!$页){
$pages=1;
}
}
如果(1!=$pages){
回声“;
如果($paged>2&&$paged>$range+1&&$showitems<$pages)echo“”;
如果($paged>1&&$showitems<$pages)回显“”;
对于($i=1;$i=$paged+$range+1 | |$i)
function wpbeginner_numeric_posts_nav() {

if( is_singular() )
    return;

global $wp_query;

/** Stop execution if there's only 1 page */
if( $wp_query->max_num_pages <= 1 )
    return;

$paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
$max   = intval( $wp_query->max_num_pages );

/** Add current page to the array */
if ( $paged >= 1 )
    $links[] = $paged;

/** Add the pages around the current page to the array */
if ( $paged >= 3 ) {
    $links[] = $paged - 1;
    $links[] = $paged - 2;
}

if ( ( $paged + 2 ) <= $max ) {
    $links[] = $paged + 2;
    $links[] = $paged + 1;
}

echo '<div class="navigation"><ul>' . "\n";

/** Previous Post Link */
if ( get_previous_posts_link() )
    printf( '<li>%s</li>' . "\n", get_previous_posts_link() );

/** Link to first page, plus ellipses if necessary */
if ( ! in_array( 1, $links ) ) {
    $class = 1 == $paged ? ' class="active"' : '';

    printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );

    if ( ! in_array( 2, $links ) )
        echo '<li>…</li>';
}

/** Link to current page, plus 2 pages in either direction if necessary */
sort( $links );
foreach ( (array) $links as $link ) {
    $class = $paged == $link ? ' class="active"' : '';
    printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
}

/** Link to last page, plus ellipses if necessary */
if ( ! in_array( $max, $links ) ) {
    if ( ! in_array( $max - 1, $links ) )
        echo '<li>…</li>' . "\n";

    $class = $paged == $max ? ' class="active"' : '';
    printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
}

/** Next Post Link */
if ( get_next_posts_link() )
    printf( '<li>%s</li>' . "\n", get_next_posts_link() );

echo '</ul></div>' . "\n";}
function my_pagination($pages = '', $range = 2) {

$showitems = ($range * 2)+1;

global $paged;
if(empty($paged)) $paged = 1;

if($pages == '') {
    global $wp_query;
    $pages = $wp_query->max_num_pages;
    if(!$pages) {
        $pages = 1;
    }
}

if(1 != $pages) {
    echo "<div class='pagination'>";
    if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>";
    if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a>";

    for ($i=1; $i <= $pages; $i++) {
        if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) {
            echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
        }
    }

    if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";
    if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
    echo "</div>\n";
}