WordPress自定义循环按自定义域升降帖子

时间:2015-04-11 作者:moto g

我正在开发wordpress网站,这取决于价格,所以我添加了名为“价格”的自定义文件

<?php 
while ( have_posts() ) : the_post();
echo  $price = get_post_meta($post->ID, \'price\', TRUE);
endwhile;
 ?>
这是显示所有帖子价格的基本循环。要求:任何人都可以修改以上内容,使其按照升序或降序显示帖子,就像每个价格网站一样

1 个回复
SO网友:websupporter

如果您想创建自己的WP\\U查询,那么您可以这样做:

<?php
$args = array(
    \'orderby\' => \'meta_value_num\',
    \'order\' => \'ASC\',
    \'meta_key\' => \'price\'
);
$new_query = new WP_Query( $args );
?>
参见文档中的示例:

https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

由于您使用的是Mainloop,因此需要采取一些不同的行动:

<?php
add_action( \'pre_get_posts\', \'order_by_price\' );
function order_by_price( $query ){
    if( ! $query->is_main_query() ) //If its not the main query return
        return;

    $query->set( \'order\', \'asc\' );
    $query->set( \'orderby\', \'meta_value_num\' );
    $query->set( \'meta_key\', \'price\' );
}
?>
这将作用于每个主回路。所以要小心。也许你希望这只适用于特定的职位类型。在这种情况下,应首先检查:

<?php
add_action( \'pre_get_posts\', \'order_by_price\' );
function order_by_price( $query ){
    if( ! $query->is_main_query() ) //If its not the main query return
        return;

    if( \'product\' != $query->get( \'post_type\' ) ) //Apply only for \'product\' post types
        return;

    $query->set( \'order\', \'asc\' );
    $query->set( \'orderby\', \'meta_value_num\' );
    $query->set( \'meta_key\', \'price\' );
}
?>
还要检查此Actionhook的文档:

https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

结束

相关推荐

Sortable WYSIWYG editor

我在metabox中有一组可排序的wysiwyg编辑器。不幸的是,每当我拖动一行时,我都会遇到这个错误,我不知道是什么导致了它。Uncaught TypeError: Object [object Object] has no method \'destroy\'这是我的可排序代码:$( \"#repeatable-fieldset-one tbody\" ).sortable({ handle: \'.jQuerySortableIcon\',