【发布时间】:2020-09-17 16:52:44
【问题描述】:
我正在尝试在 Wordpress 中创建一个自定义简码,它可以让我在名为“case_studies”的自定义帖子类型中放置一个属性来指定类别和查询。分类本身称为“case_study_categories”,我已将默认设置为“furniture-interior”,如您所见。
我需要的是让短代码看起来像这样: [get_project_gallery order="ASC" tax_query="flooring"]
理想情况下,我放置的短代码属性会覆盖默认的“furniture-interior”,而是使用“flooring”来显示适当的帖子。实际上,我认为我什至根本不需要定义默认值(所以如果没有指定属性,它只会获取所有 case_studies 帖子)但我也无法让它工作。
顺便说一句,order 的属性完全按照我想要的方式工作 - 它覆盖了定义的默认值。我只是不知道如何使用 $tax_query 来完成这项工作。
对此的任何帮助将不胜感激。提前谢谢大家! 这是我的代码:
function project_gallery_function($atts, $content = null) {
extract(shortcode_atts(array(
'order' => 'DESC',
'orderby' => 'date',
'tax_query' => array(
array(
'taxonomy' => 'case_study_categories',
'field' => 'slug',
'terms' => 'furniture-interior'
)
)
), $atts));
$args = array(
'post_type' => 'case_studies',
'post_status' => 'publish',
'posts_per_page' => '4',
'order' => $order,
'orderby' => $orderby,
'tax_query' => array($tax_query)
);
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<aside class="grid-gallery four-col grid-gap-4">';
while ( $the_query->have_posts() ) {
$the_query->the_post();
$gallery_thumb = get_the_post_thumbnail_url( $page->ID, 'thumbnail' );
echo '<a href="'. get_the_permalink() .'" class="x-image mobx sub-img" data-rel="gallery-1"><img src="'. $gallery_thumb .'" alt="" /></a>';
}
echo '</aside>';
}
/* Restore original Post Data */
wp_reset_postdata();
}
add_shortcode( 'get_project_gallery', 'project_gallery_function' );
【问题讨论】:
标签: php wordpress attr wordpress-shortcode