2014-02-05 1 views
0

На сайте Wordpress, если пользователь просматривает сообщение, размещенное 01/02/2014, я бы хотел (а) публиковать сообщения старше 01/02/2014 в sidebar.I есть какой-нибудь плагин для этого или любой код, чтобы это сделать? Любая помощь будет оценена. Спасибо заранее.Получить список сообщений до даты публикации в Wordpress

ответ

2

Этот код результаты предыдущий пост aal с определенной даты. получить дату текущего сообщения и заменить на дату «2012-03-01» в коде $ query_string = "order = ASC & posts_per_page = -1";

// Create a new filtering function that will add our where clause to the query 
    function filter_where($where = '') { 
     $where .= " AND post_date > '2012-03-01'"; 
     return $where; 
    } 

    add_filter('posts_where', 'filter_where'); 
    $custom_query = new WP_Query($query_string); 
    remove_filter('posts_where', 'filter_where'); 
1

Я думаю, что в SQL, то будет запрос выглядит следующим образом:

SELECT ID,post_title FROM `wp_posts` WHERE `post_date` < "2014-02-01 00:00:00" AND `post_type` = "post" AND `post_status` = "publish" order by `post_date` desc 

Wich означает: выберите the post id, the post title и the post date в wp_posts таблице, где the post_date старше 2014-02-01 00:00:00 и пост published и пост a post (не пункт меню или что-то еще). В PHP, вы можете сделать что-то вроде этого:

<div class="test"> 
<?php 
global $wpdb; 
$query = " 
    SELECT ID, post_title,post_date 
    FROM $wpdb->posts 
    WHERE post_date < '2013-12-01 00:00:00' 
      AND post_status = 'publish' 
      AND post_type = 'post' 
    ORDER BY post_date DESC 
    "; 

$results = $wpdb->get_results($query); 
// Open an unordered list 
echo '<ul>'; 
    foreach ($results as $result) 
    { 
     echo '<li>'; 
     echo '<span>'.$result->ID.'</span>'; // Your post ID 
     echo '<time datetime="'.$result->post_date.'">'.$result->post_date.'</time>'; // The post date 
     echo '<span>'.$result->post_title.'</span>'; // the post title 
     echo '</li>'; // Close your list item 
    } 
echo '</ul>'; // Close your unordered list 

?> 
</div> 

Это эхо:

<ul> 
    <li> 
     <span>a post ID</span> 
     <time datetime="a post date">a post date</time> 
     <span>a post title</span> 
    </li> 
    <li> 
     <span>another post ID</span> 
     <time datetime="another post date">another post date</time> 
     <span>another post title</span> 
    </li> 
    ... 
</ul> 

Конечно, вы можете добавить <a href=""> на ваших заголовкам и удалить запись ID или после даты. я не знаю, если это лучший способ, но он работает отлично :)

О, и если вы хотите, чтобы повторить результат на боковой панели, вы должны создать новый виджет :)

+0

поэтому для этого нет плагинов, верно? – Ranjani

+0

Хммм Я не знаю, извините. Я могу создать для вас небольшой и простой плагин, если вы захотите. Вы также должны искать в плагинах WordPress. Я нашел это: http://wordpress.org/support/plugin/wordpress-popular-posts – Manoz

Смежные вопросы