Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 15/02/11 в 18:42 |
pingwin писал: | поделюсь фенечкой: |
поделюсь тоже фенечкой - такие темы надо хуками мутить в functions.php чтобы после апдейта не потерять.
|
|
пришел к победе коммунистического труда
|
8
|
|
|
завлекаю текстами
С нами с 30.04.09
Сообщения: 1610
Рейтинг: 1165
|
Добавлено: 16/02/11 в 01:55 |
все, я потерялся, лучше буду юзать готовые плагины.
монстры блоговодства
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 16/02/11 в 23:49 |
как выводить релейтед рендомные посты, без завязки на теги, но постоянные для каждой отдельной страницы?
например для страницы page?id=1 всегда выводить посты page?id=5 page?id=7 page?id=128
для page?id=2 другие посты page?id=123 page?id=345 page?id=5678
тоесть рендомные посты, постоянны для каждой страницы
вот такой такой вопросик
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 17/02/11 в 08:00 |
ibiz писал: | ... тоесть рендомные посты, постоянны для каждой страницы |
Так рандомные или постоянные?
Непонятно.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 17/02/11 в 09:22 |
Yacc писал: | Так рандомные или постоянные?
Непонятно. |
постоянные, но разные для каждой отдельно взятой страницы, понятно?
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 17/02/11 в 13:03 |
Related posts на основе ID постов.
То же самое, но ссылки на посты будут вида example.com/?p=128
Вставлять внутрь цикла в single.php
Код: [развернуть] | <?php
$post_id = get_the_id();
$related_posts = get_post_meta($post_id, 'Related post ids', true);
if(count($related_posts) > 0) {
$ids = explode(',', $related_posts);
if (count($ids) > 0) { ?>
<div class="related">
Related posts
<ul><?php
foreach ( $ids as $id ) {
$post = get_post($id); ?>
<li>
<a href="<?php echo $post->guid; ?>">
<?php echo $post->post_title; ?>
</a>
</li><?php
} ?>
<ul>
</div> <?php
}
}
wp_reset_query();
?> |
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 17/02/11 в 13:36 |
Yacc писал: | Related posts на основе ID постов.
То же самое, но ссылки на посты будут вида example.com/?p=128
Вставлять внутрь цикла в single.php
Код: [развернуть] | <?php
$post_id = get_the_id();
$related_posts = get_post_meta($post_id, 'Related post ids', true);
if(count($related_posts) > 0) {
$ids = explode(',', $related_posts);
if (count($ids) > 0) { ?>
<div class="related">
Related posts
<ul><?php
foreach ( $ids as $id ) {
$post = get_post($id); ?>
<li>
<a href="<?php echo $post->guid; ?>">
<?php echo $post->post_title; ?>
</a>
</li><?php
} ?>
<ul>
</div> <?php
}
}
wp_reset_query();
?> | |
вставил,
после Related posts почему-то выводится текущий пост только без чпу .../?p=11 и все, всего постов на сайте 20 штук, что я делаю не так?
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 17/02/11 в 13:50 |
Custom field с именем Related post ids сделал?
id постов через запятую вставил?
Посты с такими id есть?
За чпу иди по ссылке из предыдущего сообщения.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 17/02/11 в 13:52 |
Yacc писал: | Custom field с именем Related post ids сделал?
id постов через запятую вставил?
Посты с такими id есть?
За чпу иди по ссылке из предыдущего сообщения. |
ааа блин туплю, тогда все работает
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 17/02/11 в 18:47 |
Реклама
Контекстный баннер
В админке появится новый виджет Context Banner. Тащим его в сайдбар и настраиваем.
Context.
Можно выбрать из: Post title, Post content, Post Categories, Post Tags.
Banners.
Формат: KEYWORD|IMG_SRC|A_HREF
То есть код баннера будет таким: <a href="A_HREF"><img src="IMG_SRC"/></a>
Строки разделяйте точкой с запятой.
Принцип работы простой: если в выбранном контексте будет найдено указанное ключевое слово, то будет показан соответствующий баннер.
Вставлять в конец файла functions.php
Обновлено 8 марта 2011
Код: [развернуть] | function get_tag_name ($tag) { return $tag->name; }
class WP_Widget_Context_Banner extends WP_Widget {
function WP_Widget_Context_Banner() {
$widget_ops = array('classname' => 'widget_context_banner',
'description' => 'Shows banners, if the selected context is specified keywords. Use the following format for Banners field: KEYWORD|IMG_SRC|A_HREF. Separate lines with a semicolon.');
$this->WP_Widget('context-banner', 'Context Banner', $widget_ops);
}
function widget( $args, $instance ) {
extract($args);
$title = apply_filters( 'widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
//$banners = apply_filters( 'yacc_context_banner', $instance['banners'], $instance );
$context = empty( $instance['context'] ) ? 'post_title' : $instance['context'];
$ads = empty( $instance['ads'] ) ? array() : $instance['ads'];
echo $before_widget;
if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
<div class="textwidget"><?php
if(is_singular()){
global $post;
if( $post ){
foreach( array_keys($ads) as $keyword ) {
if($keyword) {
if( ( $context == 'post_title' && ( stripos( get_the_title(), $keyword ) !== false ) )
|| ( $context == 'post_content' && ( stripos( strip_tags( get_the_content() ), $keyword ) !== false ) )
|| ( $context == 'post_categories' && in_array( $keyword, array_map( "get_cat_name", wp_get_post_categories( get_the_id() ) ) ) )
|| ( $context == 'post_tags' && in_array( $keyword, array_map( "get_tag_name", wp_get_post_tags( get_the_id() ) ) ) )
) {
echo $ads[$keyword];
}
}
}
}
} ?>
</div>
<?php
echo $after_widget;
}
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = $new_instance['title'];
if ( current_user_can('unfiltered_html') ){
$instance['banners'] = $new_instance['banners'];
}
if ( in_array( $new_instance['context'], array( 'post_title', 'post_content', 'post_categories', 'post_tags' ) ) ) {
$instance['context'] = $new_instance['context'];
} else {
$instance['context'] = 'post_title';
}
$lines = explode(';', $instance['banners']);
$ads = array();
foreach ($lines as $line) {
$raw = explode('|', $line);
$keyword = trim($raw[0]);
$ads[$keyword] = '<a href="'.trim($raw[2]).'"/><img src="'.trim($raw[1]).'"/></a>';
}
$instance['ads'] = $ads;
return $instance;
}
function form( $instance ) {
$instance = wp_parse_args( (array) $instance, array( 'title' => '', 'banners' => '', 'context' => 'post_title' ) );
$title = strip_tags($instance['title']);
$banners = format_to_edit($instance['banners']); ?>
<p>
<span style="color:red;"><?php echo $this->id; ?></span>
</p>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><strong><abbr title="Widget title.">Title</abbr></strong></label>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('context'); ?>"><strong><abbr title="Where to search KEYWORD.">Context</abbr> </strong></label>
<select class="widefat" name="<?php echo $this->get_field_name('context'); ?>" id="<?php echo $this->get_field_id('context'); ?>">
<option value="post_title"<?php selected( $instance['context'], 'post_title' ); ?>>Post title</option>
<option value="post_content"<?php selected( $instance['context'], 'post_content' ); ?>>Post content</option>
<option value="post_categories"<?php selected( $instance['context'], 'post_categories' ); ?>>Post categories</option>
<option value="post_tags"<?php selected( $instance['context'], 'post_tags' ); ?>>Post tags</option>
</select>
</p>
<p style="clear: both;">
<label for="<?php echo $this->get_field_id('banners'); ?>"><strong><abbr title="KEYWORD|IMG_SRC|A_HREF;">Banners</abbr></strong></label>
<textarea class="widefat" rows="10" cols="20" id="<?php echo $this->get_field_id('banners'); ?>" name="<?php echo $this->get_field_name('banners'); ?>"><?php echo $banners; ?></textarea>
</p><?php
}
}
add_action('widgets_init', create_function('', 'return register_widget("WP_Widget_Context_Banner");')); |
Последний раз редактировалось: Yacc (08/03/11 в 07:15), всего редактировалось 4 раз(а)
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 26/02/11 в 10:04 |
как прилепить произвольный текст в конец страниц с помощью плагина без изменений в теме?
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 26/02/11 в 11:18 |
В конец какой страницы? Или в конец поста? И что за плагин?
Короче уточни.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 26/02/11 в 11:25 |
Yacc писал: | В конец какой страницы? Или в конец поста? И что за плагин?
Короче уточни. |
в конец всех страниц, типа плагин аля гугл аналитикс на сайт
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 26/02/11 в 11:27 |
Ну, открой файл шаблона footer.php и вставь туда что хочешь.
Оно?
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 26/02/11 в 11:46 |
Yacc писал: | Ну, открой файл шаблона footer.php и вставь туда что хочешь.
Оно? |
неа, нужен плагин, без изменения темы
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 26/02/11 в 11:57 |
Тебе сюда плагин написать или ты интересуешься как в принципе это сделать?
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 26/02/11 в 12:01 |
я интересуюсь, но и от готового плагина не откажусь
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 26/02/11 в 12:39 |
Сохранить в файл wp-content/plugins/foo/foo.php
Код: | <?php
/*
Plugin Name: foo
*/
function foo() {
echo 'Hello, world!';
}
add_action( 'wp_footer', 'foo' );
?> |
Потом иди в админку и активируй плагин foo.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 26/02/11 в 13:22 |
спасибо огромное, то что нужно!
|
|
|
|
С нами с 22.03.09
Сообщения: 7753
Рейтинг: 6329
|
Добавлено: 01/03/11 в 08:49 |
Раз такая пьянка, Yacc, как перемешать посты в ленте?
1. Один раз для всего блога.
2. При каждой загрузке страницы.
3. Прилепить к плагину Popularity Contest по убыванию.
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 01/03/11 в 13:32 |
Насколько я понял тебе нужны посты в случайном порядке. Для эого нужно внести одно изменение в цикл (выделено красным).
Код: | <?php
$args = array(
'orderby' => 'rand',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 10,
'ignore_sticky_posts' => 1 // Только для WP 3.1
);
$rand_query = new WP_Query($args);
if( $rand_query->have_posts() ) {
while ($rand_query->have_posts()) {
$rand_query->the_post();
the_title();
the_content();
}
}
wp_reset_query();
?> |
Что и куда "прилепить" по убыванию не понял. Уточни.
|
|
|
|
С нами с 22.03.09
Сообщения: 7753
Рейтинг: 6329
|
Добавлено: 01/03/11 в 13:41 |
Это был вариант 2, тоже спасибо я даже темы сейчас редко ковыряю не то что бы делать или код рыть, вариант раз - это их просто перетусовать один раз как колоду карт и так и оставить на всю жизнь. А вариант три - это есть такой плагин популярности статей, вот чтобы он выводил саму ленту по популярности
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 01/03/11 в 14:06 |
Что значит перетусовать один раз?
Посты хранятся в базе. В ленте посты отображаются в том порядке, в каком они выбраны из базы экземпляром WP_Query. По умолчанию посты выбираются в порядке убывания дат.
Получается, что для того чтобы "перетусовать один раз" надо пройтись по всем постам и сменить даты на случайные. Тебе это надо?
Думаю что нет. Остаётся только модификация основного цикла или установка соответствующего плагина.
Popularity Contest вываливается с fatal error на этапе активации - сразу в топку, даже разбираться не хочу.
|
|
|
|
С нами с 22.03.09
Сообщения: 7753
Рейтинг: 6329
|
Добавлено: 02/03/11 в 04:23 |
Yacc писал: | Получается, что для того чтобы "перетусовать один раз" надо пройтись по всем постам и сменить даты на случайные. Тебе это надо?
Думаю что нет. |
Именно это в принципе
Вот такой вопрос, при открытии страницы какой либо категории видем в тайтле название категории, некоторые темы выводят именно описание категории, лопатил - лопатил, где эта гребанная строчка ?
upd.
Стоит формат : %category_title% | %blog_title% , а описание это что?
Надо типа: %description_category% | %blog_title% но так не пашет :-)
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 02/03/11 в 11:54 |
|
|
|
|