[Ищу] Плагин/функцию для круговой перелинковки постов

Тема в разделе "Wordpress", создана пользователем BadMotherFucker, 9 апр 2010.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. BadMotherFucker

    BadMotherFucker Модератор (Core Team)

    Регистр.:
    13 ноя 2009
    Сообщения:
    786
    Симпатии:
    570
    Ищу плагин или функцию для круговой (A->B->C->A) перелинковки всех постов...
     
  2. Zubache

    Zubache

    Регистр.:
    20 апр 2007
    Сообщения:
    256
    Симпатии:
    194
    он же и так по дефолту ставит ссылки на следующий и предыдущий пост, http://codex.wordpress.org/Template_Tags/next_post_link- типа <?php next_post_link(); ?>

    или я не то говорю ? что-то другое имеешь ввиду?
     
  3. BadMotherFucker

    BadMotherFucker Модератор (Core Team)

    Регистр.:
    13 ноя 2009
    Сообщения:
    786
    Симпатии:
    570
    Эта функция делает не круговую перелинковку, а A->B->C.
    Нужно именно A->B->C->A.
     
  4. BadMotherFucker

    BadMotherFucker Модератор (Core Team)

    Регистр.:
    13 ноя 2009
    Сообщения:
    786
    Симпатии:
    570
    Нашел то, что искал...
    Вдруг кому-нибудь пригодится:
    http://blogbusiness.ru/archives/230
     
  5. snoopserg

    snoopserg Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    10
    Симпатии:
    0
    Спомощью этого кода можно вывести n-количество записей из этой категории где опубликован пост,вставляем его в файл single.php (в папке Вашей темы) в то место где Вы хотите вывести "Предыдущие записи":
    PHP:
    <?php
    function show_previous_posts_from_category ($the_post_id$the_category_id 0$post_num) {
    $num 0;
    global 
    $wpdb;
    $sql "SELECT wposts.*
    FROM 
    $wpdb->posts wposts
    LEFT JOIN 
    $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
    LEFT JOIN 
    $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
    WHERE 
    $wpdb->term_taxonomy.taxonomy = 'category'
    AND 
    $wpdb->term_taxonomy.term_id = '$the_category_id'
    AND wposts.post_status = 'publish'
    AND wposts.post_type = 'post'
    AND wposts.ID < '
    $the_post_id'
    ORDER BY wposts.ID DESC
    LIMIT 
    $post_num";
    $result $wpdb->get_results($sqlOBJECT);
    global 
    $post;
    ?>
    <ul>
    <?php
    foreach ($result as $post) {
    setup_postdata($post);
    ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
    <?php
    $num
    ++;
    $save_ids[] = $post->ID;
    }
    if ( 
    $num $post_num || !$result ) {
    $need_more $post_num-$num;
    $save_ids[] = $the_post_id;
    $save_ids join (','$save_ids);
    $more_posts get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids");
    foreach (
    $more_posts as $post){
    setup_postdata($post);
    ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
    <?php
    }
    }
    ?>
    </ul>
    <?php ?>
    <?php
    $the_cat 
    get_the_category();
    $the_cat_id $the_cat[0]->cat_ID;
    show_previous_posts_from_category($post->ID$the_cat_id5);
    wp_reset_query();
    ?>
    В 51 строке изменяется количество выводимых постов, по умолчанию выводится 5 предыдущих постов.
    По мимо того что этот способ использует намного меньше ресурсов чем аналогичные плагины, он также более логично перелинковывает все страницы. У Вас не получится такая ситуация что на некоторые страницы будут 1-2 ссылки, а на другие по 10 ссылок, при использовании этого способа на каждую запись у Вас всегда будет по 5 ссылающихся страниц! Также плюсом можно назвать и постоянность ссылок, т.е. они не буду изменяться при появлении новых записей.
     
  6. Danilka71

    Danilka71 Постоялец

    Регистр.:
    17 мар 2009
    Сообщения:
    127
    Симпатии:
    7
    не заработал этот вариант, пробовал на разных блогах. не показывает :nezn:
     
Статус темы:
Закрыта.