awayka
Ответы в темах
-
Форум: Плагины
Тема: WMPL плагин. Вывод записей на выбранном языке.Вот теперь более правильный вывод (была проблема со ссылками):
<?php if ( is_page('index') || is_front_page('')) : ?> <?php $lastposts = get_posts('numberposts=3&suppress_filters=0'); $datef = 'Y/m/j'; foreach($lastposts as $lastpost) : $post_title = stripslashes($lastpost->post_title); $lastpost_date = mysql2date($datef, $lastpost->post_date); $permalink = get_permalink($lastpost->ID); $title = '<a href="' . $permalink . '" rel="bookmark" title="' . htmlspecialchars($post_title, ENT_COMPAT) . '">' . htmlspecialchars($post_title) . '</a>'; $post_excerpt = stripslashes($lastpost->post_excerpt); echo "$lastpost_date $title <br /> $post_excerpt <br /><br />"; endforeach; ?> <?php endif; ?>
Форум: Плагины
Тема: WMPL плагин. Вывод записей на выбранном языке.Решила проблему следующим образом:
Не стала использовать плагин Recent Posts, а просто на странице page.php ввела следующий код:<?php if ( is_page('index') || is_front_page('')) : ?> <?php $lastposts = get_posts('numberposts=3&suppress_filters=0'); $datef = 'Y/m/j'; foreach($lastposts as $lastpost) : $lastpost_date = mysql2date($datef, $lastpost->post_date); $title = '<a href="'.get_page_link($post->post_ID).'">'.$lastpost->post_title.'</a>'; $post_excerpt = stripslashes($lastpost->post_excerpt); echo "$lastpost_date $title <br /> $post_excerpt <br /><br />"; endforeach; ?> <?php endif; ?>
suppress_filters=0 — делает возможным вывод новостей только на выбранном языке.
Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыВсе! Проблема решена (с датой). Измененный код плагина 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 — нужно было для мультиязычного сайта.
Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыПрактически добилась своего. Дату и время теперь выводит для каждого поста свою. Добавила несколько строк в код плагина 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; } ?>
Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыКажется мой вопрос про дату ускользнул от внимания:
Проблема с выводом даты поста. Выводит для всех одинаковую (а они разные), да еще и не правильную (ни у одного поста нет такой даты). Как правильно вызывать дату?
<?php mdv_recent_posts(3, the_date( $format, $before, ' ', $echo ), '<br />', true, '0', true, false); ?>
В данном случае, он выводит дату для страницы, на которой вызываются посты.Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыОкей, спасибо за ответ. Попробую поразбираться.
А что насчет даты?Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыПроблема с выводом даты поста. Выводит для всех одинаковую (а они разные), да еще и не правильную (ни у одного поста нет такой даты). Как правильно вызывать дату?
<?php mdv_recent_posts(3, the_date( $format, $before, ' ', $echo ), '<br />', true, '0', true, false); ?>
И есть какие-то подсказки по поводу того, как разграничить выбор постов (записей)? Т.е. если выбран язык русский — только записи на русском выводить и .т.п?
Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыПоиском я пользовалась еще как, прежде чем задавать вопрос.
Слово «recent» мне не приходило в голову.
Мне еще нужно, чтобы не только заголовки выводил, но и анонс…Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыНо если выводить через вышеупомянутый main-functions.php, то отображает дату и заголовок новости. Комментарии не предлагает писать.
<?php if ( is_page('index') ) : ?> <?php require_once('main-functions.php'); echo '<div class="last_post">'; maxsite_last_post_cat(); echo '</div>'; ?> <?php endif; ?>
Есть еще другая проблема (и в том и в другом случае): так как сайт мультиязычный (поддерживается через WPML 1.7.0) выводит он новости и на том, и на другом языках.
Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыВообщем, добилась этого следующим путем:
Это добавила не на страницу index.php, а на page.php<?php if ( is_page('index') ) : ?> <ul><div class="post"> <?php $myposts = get_posts('numberposts=3'); foreach($myposts as $post) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </div> </ul> <?php endif; ?>
Единственная проблема осталась, что комментарии к одной из записей предлагает писать… (На Главной)
Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницы1. Я хоть и «по образованию» программист, но в php не разбиралась раньше.
2. По-моему, здесь форум не для того, чтобы обсуждать людей.
3. Вопрос мой может и странен, но Ваше решение не помогло. И спросила я не просто, чтобы мне ответили — я уже перепробовала не один метод вставки этих самых постов. Потому и спросила — чтобы уж ответили «профессионалы» и наверняка!Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыВ данный момент index.php выглядит так (без добавление в него строк с вызовом main-functions.php — это сработало только в сайдбаре):
Куда здесь добавить и какие строки?:<?php get_header(); ?> <?php $options = get_option('pb_options'); ?> <div id="middle-contents" class="clearfix"> <div id="left-col"> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="post"> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <ul class="post-info"> <li><?php the_time(__('F jS, Y', 'piano-black')) ?></li> <?php if ($options['author']) : ?><li><?php _e('By ','piano-black'); ?><?php the_author_posts_link(); ?></li><?php endif; ?> <li class="write-comment"><a href="<?php the_permalink() ?>#comments"><?php _e('Write comment','piano-black'); ?></a></li> <?php edit_post_link(__('[ EDIT ]', 'piano-black'), '<li class="post-edit">', '</li>' ); ?> </ul> <div class="post-content"> <?php the_content(__('Read more', 'piano-black')); ?> <?php wp_link_pages(); ?> </div> </div> <div class="post-meta"> <ul class="clearfix"> <?php if($options['post_meta_type'] == 'category') { ?> <li class="post-category"><?php the_category(' . '); ?></li> <?php } else { ?> <?php the_tags('<li class="post-tag">', ' . ', '</li>'); ?> <?php } ?> <li class="post-comment"><?php comments_popup_link(__('Write comment', 'piano-black'), __('1 comment', 'piano-black'), __('% comments', 'piano-black')); ?></li> </ul> </div> <?php endwhile; ?> <?php if (function_exists('wp_pagenavi')) { wp_pagenavi(); } else { include('navigation.php'); } ?> <a href="#pngfix-right" id="back-top" class="clear"><?php _e('Return top','piano-black'); ?></a> <?php else: ?> <div class="common-navi-wrapper"> <p><?php _e("Sorry, but you are looking for something that isn't here.","piano-black"); ?></p> </div> <?php endif; ?> </div><!-- #left-col end --> <?php get_sidebar(); ?> </div><!-- #middle-contents end --> <?php get_footer(); ?>
Форум: Проблемы и решения
Тема: Вывод новостей внизу одной страницыСоздала у себя файл main-functions.php
Добавила в index.php нужный код (приведенный по ссылке)
Нигде ничего не отображается =(Можно и на обычном, просто надо разделять права доступа (роли). Можно стандартными средствами, можно с помощью плагинов Role Scoper или User Access Manager.
В том-то и дело, что у меня проблема с «нестандартными ЧПУ»