У меня есть музыкальная тема для WordPress, которая имеет страницу со списком альбомов, альбомы отсортированы ASC
или же DESC
, Я хочу, чтобы альбомы сортировались на основе другого поля, которое является post_modified
Поскольку я новичок в PHP и программирование не может понять это самостоятельно. Я вставляю файл album.php, кто-нибудь хочет помочь мне добиться этого? Заранее спасибо.
<?php
global $cs_node, $cs_theme_option, $counter_node;
if ( !isset($cs_node->cs_album_per_page) || empty($cs_node->cs_album_per_page) ) { $cs_node->cs_album_per_page = -1; }
$filter_category = '';
$row_cat = $wpdb->get_row("SELECT * from ".$wpdb->prefix."terms WHERE slug = '" . $cs_node->cs_album_cat ."'" );
if ( isset($_GET['filter_category']) ) {$filter_category = $_GET['filter_category'];}
else {
if(isset($row_cat->slug)){
$filter_category = $row_cat->slug;
}
}
if ( empty($_GET['page_id_all']) ) $_GET['page_id_all'] = 1;
$args = array(
'posts_per_page' => "-1",
'post_type' => 'albums',
'post_status' => 'publish',
'order' => 'ASC',
);
if(isset($filter_category) && $filter_category <> '' && $filter_category <> '0'){
$event_category_array = array('album-category' => "$filter_category");
$args = array_merge($args, $event_category_array);
}
$custom_query = new WP_Query($args);
$count_post = 0;
$count_post = $custom_query->post_count;
?>
<script type="text/javascript">
jQuery(document).ready(function($){
// jQuery('.icon-btn').tooltip();
});
</script>
<div class="element_size_<?php echo $cs_node->album_element_size;?>">
<div class="<?php if($cs_node->cs_album_view == 'Grid View'){ echo 'new-releases releases-four-coll';} else if($cs_node->cs_album_view == 'List View') { echo 'event albums-list';} else { echo 'new-releases';}?>">
<?php if ($cs_node->cs_album_title <> '' || $cs_node->cs_album_filterable == "On") {?>
<header class="cs-heading-title">
<?php if ($cs_node->cs_album_title <> '') { ?><h2 class="cs-section-title cs-heading-color"><?php echo $cs_node->cs_album_title;?></h2>
<?php if($cs_node->cs_album_filterable == "On" && $cs_node->cs_album_view == 'List View'){
$qrystr= "";
if ( isset($_GET['page_id']) ) $qrystr = "&page_id=".$_GET['page_id'];
?>
<div class="sortby">
<ul>
<li><a href="<?php the_permalink();?>"><?php _e('All', 'Spikes');?></a></li>
<?php if($cs_node->cs_album_cat <> '' && $cs_node->cs_album_cat <> '0'){
$categories = get_categories( array('child_of' => "$row_cat->term_id", 'taxonomy' => 'album-category', 'hide_empty' => 0) );
} else {
$categories = get_categories( array('taxonomy' => 'album-category', 'hide_empty' => 0) );
}
foreach ($categories as $category) {?>
<li <?php if($category->slug==$filter_category){echo 'class="active"';}?>><a href="?<?php echo $qrystr."&filter_category=".$category->slug?>"><?php echo $category->cat_name?></a></li>
<?php }?>
</ul>
</div>
<?php }?>
</header>
<?php
}}
if($cs_node->cs_album_view == 'Grid View'){
$args = array(
'posts_per_page' => "$cs_node->cs_album_per_page",
'paged' => $_GET['page_id_all'],
'post_type' => 'albums',
'post_status' => 'publish',
'order' => 'DESC',
);
if(isset($filter_category) && $filter_category <> '' && $filter_category <> '0'){
$event_category_array = array('album-category' => "$filter_category");
$args = array_merge($args, $event_category_array);
}
$custom_query = new WP_Query($args);
if ( $custom_query->have_posts() <> "" ):
$width = 228;
$height = 205;
$counter_album = $counter_count = 0;
while ( $custom_query->have_posts() ): $custom_query->the_post();
$cs_album = get_post_meta($post->ID, "cs_album", true);
if ( $cs_album <> "" ) {
$counter_album_tracks = 0;
$album_track_mp3_url_audio = '';
$cs_xmlObject = new SimpleXMLElement($cs_album);
$album_release_date_db = $cs_xmlObject->album_release_date;
$album_buynow = $cs_xmlObject->album_buynow;
}
$image_url = cs_attachment_image_src( get_post_thumbnail_id($post->ID),$width,$height );
if($image_url == ''){
$noimg = 'no-img';
}else{
$noimg ='';
}
?>
<article <?php post_class($noimg);?>>
<figure>
<a href="<?php the_permalink();?>"><img src="<?php echo $image_url;?>" alt=""></a>
<figcaption>
<a href="<?php the_permalink();?>"><i class="fa fa-headphones fa-3x"></i></a>
</figcaption>
</figure>
<div class="text webkit">
<h2 class="cs-post-title cs-heading-color"><a href="<?php the_permalink();?>"><?php echo substr(get_the_title(), 0, 33); if(strlen(get_the_title())>33) echo '...'; ?></a></h2>
<div class="album_heading">
<?php
/* translators: used between list items, there is a space after the comma */
$before_cat = '<div class="cs-event-catgories">';
$categories_list = get_the_term_list ( get_the_id(), 'album-category', $before_cat, ', ', '</div>' );
if ( $categories_list ){
printf( __( '%1$s', 'Spikes'),$categories_list );
}
?>
<div class="social-area">
<div class="social-network">
<?php if($cs_xmlObject->album_buy_amazon <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_amazon;?>" class="icon-btn icon1"></a><?php }?>
<?php if($cs_xmlObject->album_buy_apple <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_apple;?>" class="icon-btn icon2"></a><?php }?>
<?php if($cs_xmlObject->album_buy_groov <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_groov;?>" class="icon-btn icon3"></a><?php }?>
<?php if($cs_xmlObject->album_buy_cloud <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_cloud;?>" class="icon-btn icon4"></a><?php }?>
</div>
<?php if($album_buynow <> ''){?><a href="<?php echo $album_buynow;?>" class="bay-btn uppercase"><?php if($cs_theme_option['trans_switcher'] == "on"){ _e('Buy Now','Spikes');}else{ echo $cs_theme_option['trans_album_buynow']; } ?></a><?php }?>
</div>
</div>
</div>
</article>
<?php endwhile; endif;
} else if($cs_node->cs_album_view == 'home_view') {
cs_cycleslider_script();
?>
<div class="center">
<a id="prev<?php echo $counter_node;?>" href="#" class="prev-btn bordercolr colr backcolrhover"><i class="fa fa-angle-left fa-1x"></i></a>
<a id="next<?php echo $counter_node;?>" href="#" class="next-btn bordercolr colr backcolrhover"><i class="fa fa-angle-right fa-1x"></i></a>
</div>
<div class="cycle-slideshow"
data-cycle-timeout=40000
data-cycle-fx=carousel
data-cycle-slides="article"
data-cycle-carousel-fluid="false"
data-allow-wrap="true"
data-cycle-next="#next<?php echo $counter_node;?>"
data-cycle-prev="#prev<?php echo $counter_node;?>">
<?php $args = array(
'posts_per_page' => "$cs_node->cs_album_per_page",
'paged' => $_GET['page_id_all'],
'post_type' => 'albums',
'post_status' => 'publish',
'order' => 'ASC',
);
if(isset($filter_category) && $filter_category <> '' && $filter_category <> '0'){
$event_category_array = array('album-category' => "$filter_category");
$args = array_merge($args, $event_category_array);
}
$custom_query = new WP_Query($args);
if ( $custom_query->have_posts() <> "" ):
$width = 228;
$height = 205;
$counter_album = $counter_count = 0;
while ( $custom_query->have_posts() ): $custom_query->the_post();
$cs_album = get_post_meta($post->ID, "cs_album", true);
if ( $cs_album <> "" ) {
$counter_album_tracks = 0;
$album_track_mp3_url_audio = '';
$cs_xmlObject = new SimpleXMLElement($cs_album);
$album_release_date_db = $cs_xmlObject->album_release_date;
$album_buynow = $cs_xmlObject->album_buynow;
}
$image_url = cs_attachment_image_src( get_post_thumbnail_id($post->ID),$width,$height );
if($image_url == ''){
$noimg = 'no-img';
}else{
$noimg ='';
}
?>
<article <?php post_class($noimg);?> style="position:relative;">
<figure>
<a href="<?php the_permalink();?>"><?php if($image_url <> ''){?><img src="<?php echo $image_url;?>" alt=""><?php }?></a>
</figure>
<div class="text webkit">
<h2 class="cs-post-title cs-heading-color"><a href="<?php the_permalink();?>"><?php echo substr(get_the_title(), 0, 33); if(strlen(get_the_title())>33) echo '...'; ?></a></h2>
<div class="album_heading">
<?php
/* translators: used between list items, there is a space after the comma */
$before_cat = '<div class="cs-event-catgories">';
$categories_list = get_the_term_list ( get_the_id(), 'album-category', $before_cat, ', ', '</div>' );
if ( $categories_list ){
printf( __( '%1$s', 'Spikes'),$categories_list );
}
?>
<div class="social-area">
<div class="social-network">
<?php if($cs_xmlObject->album_buy_amazon <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_amazon;?>" class="icon-btn icon1"></a><?php }?>
<?php if($cs_xmlObject->album_buy_apple <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_apple;?>" class="icon-btn icon2"></a><?php }?>
<?php if($cs_xmlObject->album_buy_groov <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_groov;?>" class="icon-btn icon3"></a><?php }?>
<?php if($cs_xmlObject->album_buy_cloud <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" href="<?php echo $cs_xmlObject->album_buy_cloud;?>" class="icon-btn icon4"></a><?php }?>
</div>
<?php if($album_buynow <> ''){?><a href="<?php echo $album_buynow;?>" class="bay-btn uppercase"><?php if($cs_theme_option['trans_switcher'] == "on"){ _e('Buy Now','Spikes');}else{ echo $cs_theme_option['trans_album_buynow']; } ?></a><?php }?>
</div>
</div>
</div>
</article>
<?php endwhile; endif;?>
</div>
<?php } else {
$args = array(
'posts_per_page' => "$cs_node->cs_album_per_page",
'paged' => $_GET['page_id_all'],
'post_type' => 'albums',
'post_status' => 'publish',
'order' => 'ASC',
);
if(isset($filter_category) && $filter_category <> '' && $filter_category <> '0'){
$event_category_array = array('album-category' => "$filter_category");
$args = array_merge($args, $event_category_array);
}
$custom_query = new WP_Query($args);
if ( $custom_query->have_posts() <> "" ):
$width = 150;
$height = 150;
$counter_album = $counter_count = 0;
while ( $custom_query->have_posts() ): $custom_query->the_post();
$cs_album = get_post_meta($post->ID, "cs_album", true);
if ( $cs_album <> "" ) {
$counter_album_tracks = 0;
$album_track_mp3_url_audio = '';
$cs_xmlObject = new SimpleXMLElement($cs_album);
$album_release_date_db = $cs_xmlObject->album_release_date;
$album_buynow = $cs_xmlObject->album_buynow;
}
$image_url = cs_attachment_image_src( get_post_thumbnail_id($post->ID),$width,$height );
if($image_url == ''){
$noimg = 'no-img';
}else{
$noimg ='';
}
?>
<article <?php post_class($noimg);?>>
<div class="event-inn">
<figure><a href="<?php the_permalink();?>"><img src="<?php echo $image_url;?>" alt=""></a><figcaption><i class="fa fa-headphones fa-3x"></i></figcaption></figure>
<div class="text">
<h2 class="cs-post-title cs-heading-color"><a class="colrhover" href="<?php the_permalink();?>"><?php echo substr(get_the_title(), 0, 33); if(strlen(get_the_title())>33) echo '...'; ?></a></h2>
<ul>
<?php if($album_release_date_db <> ''){?><li><span><?php if($cs_theme_option['trans_switcher'] == "on"){ _e('Released Date','Spikes');}else{ echo $cs_theme_option['trans_album_release_date']; } ?> :</span> <?php echo date('d.m.Y', strtotime($cs_xmlObject->album_release_date));?></li><?php }?>
<li><span><?php if($cs_theme_option['trans_switcher'] == "on"){ _e('Available on','Spikes');}else{ echo $cs_theme_option['trans_album_available']; } ?> :</span>
<?php if($cs_xmlObject->album_buy_amazon <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" class="icon-btn" href="<?php echo $cs_xmlObject->album_buy_amazon;?>"></a><?php }?>
<?php if($cs_xmlObject->album_buy_apple <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" class="icon-btn icon-btn-2" href="<?php echo $cs_xmlObject->album_buy_apple;?>"></a><?php }?>
<?php if($cs_xmlObject->album_buy_groov <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" class="icon-btn icon-btn-3" href="<?php echo $cs_xmlObject->album_buy_groov;?>"></a><?php }?>
<?php if($cs_xmlObject->album_buy_cloud <> ''){?><a title="" data-placement="top" data-toggle="tooltip" data-original-title="Itunes" class="icon-btn icon-btn-4" href="<?php echo $cs_xmlObject->album_buy_cloud;?>"></a><?php }?>
</li>
</ul>
<?php if($album_buynow <> ''){?> <a href="<?php echo $album_buynow;?>" class="bay-btn uppercase"><?php if($cs_theme_option['trans_switcher'] == "on"){ _e('Buy Now','Spikes');}else{ echo $cs_theme_option['trans_album_buynow']; } ?></a><?php }?>
<a class="play-icon" href="<?php the_permalink();?>"><i class="fa fa-play fa-2x"></i></a>
</div>
</div>
</article>
<?php
endwhile; endif;
}?>
</div>
<?php
//<!-- Pagination -->
if ($cs_node->cs_album_pagination == "Show Pagination" && $cs_node->cs_album_view <> 'home_view' ) {
$qrystr = '';
if(cs_pagination($count_post, $cs_node->cs_album_per_page, $qrystr) <> ''){
// pagination start
if ( $cs_node->cs_album_pagination == "Show Pagination" and $cs_node->cs_album_per_page > 0 ) {
if ( isset($_GET['page_id']) ) $qrystr = "&page_id=".$_GET['page_id'];
if ( isset($_GET['filter_category']) ) $qrystr .= "&filter_category=".$_GET['filter_category'];
echo cs_pagination($count_post, $cs_node->cs_album_per_page, $qrystr);
}
// pagination end
}
}
?>
</div>
При подготовке аргументов для WP_Query вы можете дополнительно указать имя поля для порядка сортировки. Я изменил ваши $ args, они должны выглядеть следующим образом:
$args = array(
'posts_per_page' => "$cs_node->cs_album_per_page",
'paged' => $_GET['page_id_all'],
'post_type' => 'albums',
'post_status' => 'publish',
'orderby' => 'modified'
'order' => 'DESC',
);
Обратите внимание, что я добавил новый элементСортировать по‘в вашем массиве вы можете узнать больше о WP_Query на https://codex.wordpress.org/Class_Reference/WP_Query
это должно решить вашу проблему сейчас
Других решений пока нет …