在我的搜索页面wordpress按日期排序帖子。但我希望在我的模板中排序到meta_key-imic_date(事件日期)。我需要修改搜索查询,但在哪里?应该工作的代码。但是我把它加在哪里?
$args = array(
'post_type' => array('custom-post-type'),
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_key' => 'imic_date'
);
$loop = new WP_Query($args);
(对不起我的英语):D
编辑:
我的search.php文件:
<?php get_header(); ?>
<div class="container">
<div class="row">
<div class="col-md-9 posts-archive">
<?php
if (have_posts()) :
while (have_posts()):the_post();
echo'<article class="post">
<div class="row">';
if (has_post_thumbnail()):
echo '<div class="col-md-4 col-sm-4">
<a href="' . get_permalink() . '">';
the_post_thumbnail('600x400', array('class' => "img-thumbnail"));
echo'</a></div>';
endif;
echo '<div class="col-md-8 col-sm-8">';
echo '<h3><a href="' . get_permalink() . '">' . get_the_title() . '</a></h3>';
echo '<span class="post-meta meta-data">
<span><i class="fa fa-calendar"></i>' . get_the_time(get_option('date_format')) . '</span><br><span>Time:<br/>Date:<br/>Price:<br/>Venue:<br/>Category:</span><span></i><br/>'.imic_custom_taxonomies_terms_links().'</span> <span>';
comments_popup_link('<i class="fa fa-comment"></i>'.__('No comments yet','framework'), '<i class="fa fa-comment"></i>1', '<i class="fa fa-comment"></i>%', 'comments-link',__(' ','framework'));
echo'</span></span>';
//echo imic_excerpt(50);
echo '<p><a href="' . get_permalink() . '" class="btn btn-primary">' . __('More ', 'framework') . '<i class="fa fa-long-arrow-right"></i></a></p>';
echo '</div></div>';
echo '</article>';
endwhile;
else:
echo '<article class="post">';
if (current_user_can('edit_posts')) :
?>
<h3><?php _e('NOT', 'framework'); ?></h3>
<p><?php printf(__('NOT', 'framework'), admin_url('post-new.php')); ?></p>
<?php else : ?>
<h3><?php _e('NOT', 'framework'); ?></h3>
<p><?php printf(__('NOT', 'framework')); ?></p>
<?php
echo '</article>';
endif;
?>
<?php
endif; // end have_posts() check
pagination();
?>
</div>
<!-- Start Sidebar -->
<?php
echo '<div class="col-md-3 sidebar">';
dynamic_sidebar('sidebar');
echo '</div>';
?>
<!-- End Sidebar -->
</div>
</div>
<?php get_footer(); ?>
试试这个代码。
$args = array(
'post_type' => array('custom-post-type'),
'order_by' => array('imic_date'),
'order' => 'ASC',
);
$loop = new WP_Query($args);
编辑,
像这样修改你的代码,
$args = array(
'post_type' => array('custom-post-type'),
'order_by' => array('imic_date'),
'order' => 'ASC',
);
$loop = new WP_Query($args);
if ($loop->have_posts()) :
while ($loop->have_posts()):$loop->the_post();
/** and then your code as used in original file */
编辑,
使用下面的代码,它可以工作(我测试过)
<?php $args = array(
'post_type' => 'event',
'orderby' => 'meta_value',
'meta_query' => array(array('key' => 'imic_date')),
'order' => 'desc',
'paged'=>$paged,
);
$loop = new WP_Query($args);
if ($loop->have_posts()) :
while ($loop->have_posts()):$loop->the_post(); ?>
<?php the_title(); ?>
还有你剩下的代码。。
global$wpdb;
$tb_posts=$wpdb->前缀。'帖子;
$tb_postmeta=$wpdb->前缀。'postmeta';
$query=$wpdb->get_results("SELECT$columns自$tb_posts内部联接$tb_postmetaON$tb_posts.ID=$tb_phostmeta.post_ID其中$tb_postmeta.meta_key IN('your_meta_key')AND$tb_posts.postrongtatus='publish'订单发布日期DESC限制1");
return $query;