上一链接/下一链接(按CPT中的元值)

时间:2014-05-29 作者:Justice Is Cheap

我正在使用以下代码在自定义帖子类型之间分页,它似乎没有使用meta\\u键或meta\\u value\\u num,我不知道为什么。CPT设置为hierarchal=>true,功能类型为页面。

这是我用于分页的代码(这似乎没有什么区别——我尝试使用orderby=menu\\u order,但也没有成功)。

<?php if
(get_adjacent_post(false, \'\', true))
{  echo previous_post_link(\'%link\' , \'<i class="fa fa-chevron-left"></i>\');  }
else
{ echo previous_post_link(\'%link\' , \'<i class="fa fa-chevron-right"></i>\');
$newest_post = get_posts(\'post_type=employee-bios&posts_per_page=1&order=DESC&meta_key=display-order&orderby=meta_value_num\');  $newest_post_id = $newest_post[0]->ID;
echo \'<a href="\'.get_permalink($newest_post_id).\'">
</a>\'; } 
?>

<?php if
(get_adjacent_post(false, \'\', false))
    {  echo next_post_link(\'%link\' , \'<i class="fa fa-chevron-right"></i>\'); }
else
    { echo \'\'; $eldest_post = get_posts(\'post_type=employee-bios&posts_per_page=1&order=ASC&meta_key=display-order&orderby=meta_value_num\');  $eldest_post_id = $eldest_post[0]->ID;
echo \'<a href="\'.get_permalink($eldest_post_id).\'" title="link to \'.get_the_title($eldest_post_id).\'"><i class="fa fa-chevron-right"></i></a>\'; } ; 
?>
这是我的WP\\u查询(这似乎在方案中也不重要——我刚开始使用while have posts,当这不起作用时,我尝试了WP\\u查询)

<?php
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$args = array(
    \'post_type\' => \'employee-bios\',
    \'posts_per_page\' => 1,
    \'orderby\' => meta_value_num,
    \'meta_key\' => \'display-order\',
    \'order\' => \'ASC\',
    \'paged\' => $paged
);
$my_query = new WP_Query( $args );
?>
我的客户希望能够在登录页上选择员工bios的顺序,他们应该按照在登录页上的顺序分页(这就是为什么我尝试使用menu\\u order和自定义字段元值进行排序)。

我还尝试将功能类型从页面更改为帖子,但这似乎也没有什么不同。

任何帮助都将不胜感激。谢谢

1 个回复
SO网友:Justice Is Cheap

我刚刚在另一个堆栈中找到了答案。。。我发帖的时候总是这样,似乎是这样。无论人们做什么,在这种情况下,关于分页,WP总是先按post日期进行。我需要添加一个使用menu\\u order的函数并找到答案here.

function wpse73190_gist_adjacent_post_sort( $sql ) {
    $pattern = \'/post_date/\';
    $replacement = \'menu_order\';

    return preg_replace( $pattern, $replacement, $sql );
}

add_filter( \'get_next_post_sort\', \'wpse73190_gist_adjacent_post_sort\' );
add_filter( \'get_previous_post_sort\', \'wpse73190_gist_adjacent_post_sort\' );

结束

相关推荐

使用wpdb->Prepare for`ORDER BY`列名

在我当前的插件中,我选择order by 列作为用户输入。所以我想用wpdb->prepare 为了逃避它。$wpdb->get_results($wpdb->prepare(\"Select id from $wpdb->posts order by %s %s\", $order_by_col, $order_by); 这不起作用,因为它会变成select id from wp_posts order by \'post_date\' \'asc\' (注意