Практически добилась своего. Дату и время теперь выводит для каждого поста свою. Добавила несколько строк в код плагина recent-posts.php
Единственное, что не устраивает, так это формат вывода: 2010-02-16 08:43:10 — я хотела бы без времени. Да и время здесь неправильное, хотя в админке стоит UTC+3.
Код плагина с добавленными/измененными строками:
<?php
ffunction mdv_recent_posts($no_posts = 5, $post_date = '<li>', $after = '</li>', $hide_pass_post = true, $skip_posts = 0, $show_excerpts = true, $include_pages = false) {
global $wpdb;
$time_difference = get_option('gmt_offset');
$now = gmdate("Y-m-d H:i:s",time());
$request = "SELECT ID, post_date_gmt, post_title, post_excerpt FROM $wpdb->posts WHERE post_status = 'publish' ";
if($hide_pass_post) $request .= "AND post_password ='' ";
if($include_pages) $request .= "AND (post_type='post' OR post_type='page') ";
else $request .= "AND post_type='post' ";
$request .= "AND post_date_gmt < '$now' ORDER BY post_date DESC LIMIT $skip_posts, $no_posts";
$posts = $wpdb->get_results($request);
$output = '';
if($posts) {
foreach ($posts as $post) {
$post_title = stripslashes($post->post_title);
$permalink = get_permalink($post->ID);
$post_date = stripslashes($post->post_date_gmt);
$output .= $post_date .' ' . '<a href="' . $permalink . '" rel="bookmark" title="Permanent Link: ' . htmlspecialchars($post_title, ENT_COMPAT) . '">' . htmlspecialchars($post_title) . '</a>';
if($show_excerpts) {
$post_excerpt = stripslashes($post->post_excerpt);
$output.= '<br />' . $post_excerpt;
}
$output .= $after ;
}
} else {
$output .= $before . "None found" . $after;
}
echo $output;
}
?>
Все! Проблема решена (с датой). Измененный код плагина recent-posts.php (вдруг кому пригодится):
<?php
function mdv_recent_posts($no_posts = 5, $post_date = '<li>', $after = '</li>', $hide_pass_post = true, $skip_posts = 0, $show_excerpts = true, $include_pages = false) {
global $wpdb;
$datef = 'Y/m/j';
$time_difference = get_option('gmt_offset');
$now = gmdate("Y-m-d H:i:s",time());
$request = "SELECT ID, post_date, post_title, post_excerpt FROM $wpdb->posts WHERE post_status = 'publish' ";
if($hide_pass_post) $request .= "AND post_password ='' ";
if($include_pages) $request .= "AND (post_type='post' OR post_type='page') ";
else $request .= "AND post_type='post' ";
$request .= "AND post_date_gmt < '$now' ORDER BY post_date DESC LIMIT $skip_posts, $no_posts";
$posts = $wpdb->get_results($request);
$output = '';
if($posts) {
foreach ($posts as $post) {
$post_title = stripslashes($post->post_title);
$permalink = get_permalink($post->ID);
$post_date = mysql2date($datef, $post->post_date);
$output .= $post_date .' ' . '<a href="' . $permalink . '" rel="bookmark" title="Permanent Link: ' . htmlspecialchars($post_title, ENT_COMPAT) . '">' . htmlspecialchars($post_title) . '</a>';
if($show_excerpts) {
$post_excerpt = stripslashes($post->post_excerpt);
$output.= '<br />' . $post_excerpt;
}
$output .= $after ;
}
} else {
$output .= $before . "None found" . $after;
}
echo $output;
}
?>
Дату теперь выводит в формате, задающемся строкой
$datef = 'Y/m/j';
И код вызова плагина на главной странице:
<?php if ( is_page('index') || is_front_page('')) : ?>
<div class="archive">
<?php mdv_recent_posts(3, ' ', '<br /><br />', true, 0, true, false); ?>
</div>
<?php endif; ?>
в данном случае is_front_page — нужно было для мультиязычного сайта.
Atrax
(@atrax)
Ethical engineer
Лихо! 🙂 с удовольствием «отзываю» все свои шпильки в ваш адрес.