add_shortcode( 'portfolio_shortcode', 'portfolio_shortcode' );
function portfolio_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'post_type' => 'project',
'tax_name' => 'project_category',
'posts_per_page' => '-1',
'filter' =>'default',
),
$atts,
'show_post'
);
ob_start();?>
<section id="portfolio" class="clearfix cp_<?php echo $atts['post_type'];?>">
<div class="container_port">
<!-- <header class="section-header">
<h3 class="section-title">Our Portfolio</h3>
</header> -->
<?php
$args = array('taxonomy' => $atts['tax_name'], 'post_type' => $atts['post_type'],);
$cats = get_categories($args);
$def_args = array('post_type' => $atts['post_type'],'posts_per_page' => -1,);
?>
<div class="et_pb_row">
<div class="et_pb_column_4_4 center_align">
<?php if($atts['filter']=='custom'){
$args_day = array('taxonomy' => 'weekday', 'post_type' => $atts['post_type'],'hide_empty'=> false,);
$cats_days = get_categories($args_day);
$args_location = array('taxonomy' => 'activity-location', 'post_type' => $atts['post_type'],'hide_empty'=> false,);
$cats_locations = get_categories($args_day);
$args_age = array('taxonomy' => 'age', 'post_type' => $atts['post_type'],'hide_empty'=> false,);
$args_ages = get_categories($args_age);
$args_place = array('taxonomy' => 'activity-place', 'post_type' => $atts['post_type'],'hide_empty'=> false,);
$args_places = get_categories($args_place);
$args_price = array('taxonomy' => 'activity-price', 'post_type' => $atts['post_type'],'hide_empty'=> false,);
$args_prices = get_categories($args_price);
?>
<form action="" method="get" class="activity_filter">
<ul>
<li><select name="qproject_category">
<option value="All">Type</option>
<?PHP foreach($cats as $cat) {?>
<option value="<?php echo $cat->slug; ?>" <?php if($_GET['qproject_category']==$cat->slug){echo 'selected';}?>><?php echo $cat->name; ?></option>
<?php }?>
</select></li>
<li><select name="qweekday">
<option value="All">Day of the week</option>
<?PHP foreach($cats_days as $cats_day) {?>
<option value="<?php echo $cats_day->slug; ?>" <?php if($_GET['qweekday']==$cats_day->slug){echo 'selected';}?>><?php echo $cats_day->name; ?></option>
<?php }?>
</select></li>
<li><select name="qage">
<option value="All">Age</option>
<?PHP foreach($args_ages as $args_age) {?>
<option value="<?php echo $args_age->slug; ?>" <?php if($_GET['qage']==$args_age->slug){echo 'selected';}?>><?php echo $args_age->name; ?></option>
<?php }?>
</select></li>
<li><select name="qactivity_place">
<?PHP foreach($args_places as $args_plac) {?>
<option value="<?php echo $args_plac->slug; ?>" <?php if($_GET['qactivity_place']==$args_plac->slug){echo 'selected';}?>><?php echo $args_plac->name; ?></option>
<?php }?>
</select></li>
<li><select name="qactivity-location">
<option value="All">Location</option>
<?PHP foreach($cats_locations as $cats_location) {?>
<option value="<?php echo $cats_location->slug; ?>" <?php if($_GET['qactivity-location']==$cats_location->slug){echo 'selected';}?>><?php echo $cats_location->name; ?></option>
<?php }?>
</select></li>
<li><select name="qactivity_price">
<?PHP foreach($args_prices as $args_pric) {?>
<option value="<?php echo $args_pric->slug; ?>" <?php if($_GET['qactivity_price']==$args_pric->slug){echo 'selected';}?>><?php echo $args_pric->name; ?></option>
<?php }?>
</select></li>
</ul>
<input class="btn form-submit" type="submit" id="submit-activities" value="Filter">
<a href="<?php echo get_post_type_archive_link( $atts['post_type'] ); ?>" class="btn form-reset">Show all</a>
</form>
<?php }else{?>
<ul id="portfolio-flters">
<li data-filter="*" class="filter-active">All</li>
<?PHP foreach($cats as $cat) {
//var_dump($cat); ?>
<li data-filter=".<?php echo $cat->slug; ?>"><?php echo $cat->name; ?></li>
<?PHP }?>
</ul>
<?php }?>
</div>
</div>
<div class="et_pb_row portfolio-container et_pb_gutters2">
<?php
if((isset($_GET['qproject_category']) && $_GET['qproject_category']!='All') || (isset($_GET['qweekday']) && $_GET['qweekday']!='All') || (isset($_GET['qage']) && $_GET['qage']!='All') || (isset($_GET['qactivity-location']) && $_GET['qactivity-location']!='All') || isset($_GET['qactivity_price'])|| isset($_GET['qactivity_place'])){
$def_args['tax_query']= array('relation' => 'OR',);
if($_GET['qproject_category']!='All'){
$def_args['tax_query'][] = array(
array(
'taxonomy' => 'project_category',
'field' => 'slug',
'terms' => $_GET['qproject_category'],
),
);
}
if($_GET['qweekday']!='All'){
$def_args['tax_query'][] = array(
array(
'taxonomy' => 'weekday',
'field' => 'slug',
'terms' => $_GET['qweekday'],
),
);
}
if($_GET['qage']!='All'){
$def_args['tax_query'][] = array(
array(
'taxonomy' => 'age',
'field' => 'slug',
'terms' => $_GET['qage'],
),
);
}
if($_GET['qactivity-location']!='All'){
$def_args['tax_query'][] = array(
array(
'taxonomy' => 'activity-location',
'field' => 'slug',
'terms' => $_GET['qactivity-location'],
),
);
}
if($_GET['qactivity_place']){
$def_args['tax_query'][] = array(
array(
'taxonomy' => 'activity-place',
'field' => 'slug',
'terms' => $_GET['qactivity_place'],
),
);
}
if($_GET['qactivity_price']){
$def_args['tax_query'][] = array(
array(
'taxonomy' => 'activity-price',
'field' => 'slug',
'terms' => $_GET['qactivity_price'],
),
);
}
}
$query = new WP_Query($def_args);
// $query = new WP_Query( array(
// 'post_type' => $atts['post_type'],
// 'posts_per_page' => -1,
//) );
if ( $query->have_posts() ) {
$count=0;
while ( $query->have_posts() ) : $query->the_post();
@$featured_img_url = get_the_post_thumbnail_url($post->ID,'full');
@$featured_mimg_url = get_the_post_thumbnail_url($post->ID,'medium_large');
@$categories = get_the_terms( $post->ID, $atts['tax_name']);
$terms_string = join(' / ', wp_list_pluck($categories, 'name')); ?>
<div class="et_pb_column et_pb_column_1_3 portfolio-item <?php if (is_array($categories) || is_object($categories)){ foreach( $categories as $category ){echo $category->slug.' ' ;}}?>">
<a href="<?php echo the_permalink();?>" class="link-text">
<div class="portfolio-wrap" style="background-image: url(<?php echo $featured_mimg_url;?>);">
<div class="portfolio-info">
<h4><?php the_title();?></h4>
<span class="project_cat"><?php echo $terms_string;?></span>
<a href="<?php echo the_permalink();?>">
<div class="port_link"><span class='et-pb-icon'></span></div>
</a>
</div>
</div>
</a>
</div>
<?php $count++; endwhile;
wp_reset_postdata();
}
?>
</div>
</div>
</section>
<?php wp_reset_query();
$myvariable = ob_get_clean();
return $myvariable;
}
Jagdish Sarma Asked question October 29, 2021