2
這是代碼。它只顯示一個圖像,而不管短代碼使用的類別名稱。WordPress的短代碼不通過變量
<?php
// Create Slider
function wptuts_slider_template($category_name) {
global $post;
// Query Arguments
$args = array(
'post_type' => 'slides',
'order' => 'ASC',
'category_name' => $category_name
);
// The Query
$the_query = new WP_Query($args);
// Check if the Query returns any posts
if ($the_query->have_posts()) {
// Start the Slider ?>
<ul class="slides <?php wp_title(); ?> <?php echo $category_name ?>" data-options="animation:fade;
pause_on_hover:true;
resume_on_mouseout: true;
timer_speed:3000;
animation_speed:500;
navigation_arrows:true;
bullets:true;
slide_number:false;
next_on_click:true;
timer: true;" data-orbit>
<?php
// The Loop
while ($the_query->have_posts()) : $the_query->the_post(); ?>
<li>
<?php // Check if there's a Slide URL given and if so let's a link to it
if (get_post_meta(get_the_id(), 'wptuts_slideurl', true) != '') { ?>
<a href="<?php echo esc_url(get_post_meta(get_the_id(), 'wptuts_slideurl', true)); ?>">
<?php }
// The Slide's Image
echo get_the_post_thumbnail();
// Close off the Slide's Link if there is one
if (get_post_meta(get_the_id(), 'wptuts_slideurl', true) != '') { ?>
</a>
<?php } ?>
</li>
<?php endwhile; ?>
</ul><!-- .slides -->
<?php }
// Reset Post Data
wp_reset_postdata();
}
// Slider Shortcode
function wptuts_slider_shortcode($atts) {
extract(shortcode_atts(array(
"category_name" => 'other',
), $atts));
ob_start();
wptuts_slider_template($category_name);
$slider = ob_get_clean();
return $slider;
}
add_shortcode('slider', 'wptuts_slider_shortcode');
這是什麼原因導致這不起作用?我在循環的類中回顯了category_name,並正確地輸出了變量。請幫忙!
更新* [slider category_name =「main」]是簡碼示例。
您是否像這樣使用短代碼'[slider category_name =「our-super-category」]'? –
是的,這是簡碼格式。 – jamzth
爲您的$ args添加''posts_per_page'=> -1' ...然後嘗試。目前你還沒有定義它可以得到的帖子數量......可能是這個問題。 – Nishant