我想为销售剧院门票的网站制作一个查询的简短代码,我希望能够打开和关闭分页,选择分类中每个页面的类别和帖子数量。我也无法获得分页。我是短信的新手,所以我不知道我做错了什么。
这就是我的尝试。
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' );
答案 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)。我希望有了这个,我可以帮助你。