wp查询短代码wordpress与类别的帖子和分页数量

时间:2018-04-26 18:02:25

标签: php html wordpress

我想为销售剧院门票的网站制作一个查询的简短代码,我希望能够打开和关闭分页,选择分类中每个页面的类别和帖子数量。我也无法获得分页。我是短信的新手,所以我不知道我做错了什么。

这就是我的尝试。

function test_posts(  ) {
    ob_start();



// WP_Query arguments


$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
$args = array (
    'category_name'          => 'teatro',
    'posts_per_page'         => '4',
    'paged' => $paged
);

shortcode_atts(
    $args  
);






// The Query
$featured_post_query = new WP_Query( $args['category_name'] );

// The Loop
if ( $featured_post_query->have_posts() ) {
    while ( $featured_post_query->have_posts() ) {
        $featured_post_query->the_post();

        ?>
                        <div class="teatro-all">

                            <?php the_post_thumbnail(gallery); ?>

                            <h2 class="teatro-group teatro-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                            <h5 class="teatro-group teatro-fecha"> <?php the_field('fecha'); ?></h5>
                            <h5 class="teatro-group teatro-precio" ><?php the_field('precio'); ?></h5>
                            <h5 class="teatro-group teatro-lugar" ><?php the_field('lugar'); ?> </h5>

                            <center><a class="teatro-buy teatro-button" href="<?php the_field('comprar'); ?> ">COMPRAR</a><br></center>

                            <center><a class="teatro-read-more teatro-button" href="<?php the_permalink(); ?>">LEER MAS</a></center> 



                        </div>
                        <?php if (function_exists("pagination")) {
                         pagination($custom_query->max_num_pages);
      } ?>  
                        <?php

    }
} else {
    // no posts found
}



// Restore original Post Data
wp_reset_postdata();
}

function test_shortcode() {

$output = test_posts();

$output = ob_get_clean();
    return $output;
}
add_shortcode( 'test', 'test_shortcode' );

1 个答案:

答案 0 :(得分:0)

要创建短代码,您可以直接在wordpress codex中查询:shortcode。现在,如果要将参数传递给短代码,则语法如下:[your_shortcode category="example_category" posts_per_page="2"],您必须生成以下代码:

// [your_shortcode category="example_category" posts_per_page= "6"]
function prefix_your_shortcode( $atts ) 
{
    $default_atts = ['category' => 'teatro', 'posts_per_page' => 4];
    shortcode_atts($default_atts , $atts);

    //Do your logic and consult with WP QUERY here
}
add_shortcode( 'your_shortcode', 'prefix_your_shortcode');

现在解释一下并纠正你暴露的代码,当你想通过短代码传递参数时,你调用的函数,你必须传递参数&#34; $ atts&#34;这将是shortcode传递的参数(category和posts_per_page)。然后&#34; shortcode_atts&#34;导致您放置默认属性,以防您没有放置任何属性(在这种情况下它是剧院和4)。我希望有了这个,我可以帮助你。