Wordpress输出链接到自定义查询的上一个和下一个帖子

时间:2016-07-04 18:42:07

标签: wordpress

我使用wordpress的高级自定义字段插件来创建一组自定义帖子类型,并在其中设置日期。

我试图根据自定义字段中存储的日期显示上一篇文章和下一篇文章。这些链接需要链接到将来设置日期的帖子(因此不要显示已过去日期的帖子的链接)/

我可以获得将来所有帖子的列表,并使用以下代码输出这些帖子;

<?php 
    $rightnow = current_time('Ymd');

    $args = array(                      
    'post_type' => 'Courses',
    'posts_per_page' => '25',
    'meta_query' => array(
        array(
            'key' => 'date_of_the_course_single_day',
            'compare' => '>=',
            'value' => $rightnow,
            )
            ),
    'meta_key' => 'date_of_the_course_single_day',
    'orderby' => 'meta_value',
    'order' => 'ASC',                                       
    'post_status' => 'publish'
); 
$posts = get_posts($args); 

foreach ( $posts as $post ) {
?>
    Output details of post here....
<?php   
}                   
?>                              

我认为我可以做的是获得当前帖子在阵列中的位置,然后获得一个之前和一个之后的帖子的详细信息......但我还没有得到线索怎么做。

我已经尝试过wordpress next_post_link和previous_post_link函数,但这些函数似乎可以根据帖子添加到wordpress而不是基于我的自定义日期字段来实现。

我是否以完全错误的方式解决这个问题?任何提示或指示将非常感谢!

1 个答案:

答案 0 :(得分:0)

使用WP_Querypaginate_links

public void Start()
{
    _clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    _clientSocket.BeginConnect(new IPEndPoint(IPAddress.Parse("192.168.5.150"), 3333), new AsyncCallback(ConnectCallback), null);
}

public void ConnectCallback(IASyncResult state)
{
    // get the socket from the state etc.....
    AppendToTextBox("Connected!");

    clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(RecieveCallback), _clientSocket);
}

public void RecieveCallback(IASyncResult state)
{
    // check if you receive the bytes you are trying to read.
}

您必须验证paginate参数的$rightnow = current_time('Ymd'); // Query Args $args = array( 'post_type' => 'Courses', 'posts_per_page' => '25', 'meta_query' => array( array( 'key' => 'date_of_the_course_single_day', 'compare' => '>=', 'value' => $rightnow, ) ), 'meta_key' => 'date_of_the_course_single_day', 'orderby' => 'meta_value', 'order' => 'ASC', 'post_status' => 'publish' ); $query = new WP_QUery( $arg ); $posts = $query->get_posts(); // Paginate Args $page_args = array( 'base' => 'your_custom_page_url'.'%_%', // Make sure you got this current depending on your setup 'format' => '/%#%', // requires pretty permalinks 'total' => $query->max_num_pages, 'current' => 0, 'prev_text' => __('«'), 'next_text' => __('»'), ); foreach ( $posts as $post ) { // Output } echo paginate_links( $page_args ); base是否正确无法正常工作。