Linkuri următor și anterior în post type personalizat din același termen de taxonomie

9 iul. 2012, 08:46:55
Vizualizări: 15.4K
Voturi: 3

Am un post type personalizat name->('portfolio'), cu o taxonomie numită 'portfolio_category'.

Ceea ce doresc este să adaug linkuri următor și anterior în fișierul single-portfolio.php. Când dau click pe oricare dintre linkuri, ar trebui să redirecționeze la următoarea sau anterioara postare din același post type și din același termen de taxonomie.

Am încercat să folosesc next_post_link() și previous_post_link() dar se pare că funcționează doar pentru postări obișnuite, nu și pentru post type-uri personalizate..

Orice sugestii sunt binevenite.

1
Comentarii

Pot recomanda următorul plugin, next-previous-post-link-plus-for-wordpress Îl folosesc cu versiunea 3.5.x fără nicio problemă.

Nicolai Grossherr Nicolai Grossherr
2 iul. 2013 16:53:36
Toate răspunsurile la întrebare 4
0

previous_post_link() și next_post_link() funcționează perfect cu tipurile personalizate de postări. Trebuie să lipiți acest cod în fișierul single-customposttype.php (care în cazul dumneavoastră este single-portfolio.php):

<div class="previous-post-link">
                <?php previous_post_link('%link', '<< Postarea Anterioară', $in_same_term = true, $excluded_terms = '', $taxonomy = 'the-custom-taxonomy-associated-with-your-custom-post-type'); ?>                    
            </div>

            <div class="next-post-link">
                <?php next_post_link('%link', 'Postarea Următoare >>', $in_same_term = true, $excluded_terms = '', $taxonomy = 'the-custom-taxonomy-associated-with-your-custom-post-type'); ?>                    
            </div> 
18 aug. 2014 10:40:50
0

Parametrul $taxonomy pentru ambele funcții next_post_link și previous_post_link a fost introdus în WordPress începând cu versiunea 3.8.

Când parametrul $in_same_term este setat la true, trebuie să specificați parametrul $taxonomy cu taxonomia dorită. Implicit, acesta este setat la category. Rețineți că post_format este de asemenea o taxonomie.

Exemplu:

next_post_link( '%link', 'Postul următor în categorie', TRUE, ' ', 'post_format' );

Notă importantă: nu utilizați funcțiile next_post și previous_post. Acestea au fost depreciate începând cu WordPress versiunea 2.0.0. Consultați wp-includes/deprecated.php#L121 și wp-includes/deprecated.php#L158.

ACTUALIZARE

Legăturile între postări individuale vor naviga automat între postări de același tip de conținut (post type) ca și postarea curentă, deoarece tipul postării curente este utilizat pentru a prelua postările adiacente. Verificați codul sursă al funcției get_adjacent_post(), care este utilizată de funcțiile next și previous post links. Acordați atenție specială liniei 1550 (în versiunea curentă 4.1):

1550    $where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $where", $current_post_date, $post->post_type ), $in_same_term, $excluded_terms );
10 aug. 2014 18:52:55
1

Adăugați acest cod în fișierul single-cpt.php.

<?php previous_post_link('%link', 'Postare anterioară în CPT', TRUE) ?>
<?php next_post_link('%link', 'Postare următoare în CPT', TRUE) ?>

Unde "cpt" reprezintă numele tipului vostru personalizat de postare.

14 oct. 2013 18:45:08
Comentarii

previous_post și next_post au fost învechite începând cu versiunea v2.0.0, care a fost lansată în 2005

Pieter Goosen Pieter Goosen
10 aug. 2014 18:39:58
3
-1

Încearcă asta cu thumbnail:

<?php $prevPost = get_previous_post(); if($prevPost) { ?>
    <li class="previous">
    <?php $prevthumbnail = get_the_post_thumbnail($prevPost->ID, array(80,80) ); ?>
        <?php previous_post_link('%link', $prevthumbnail . '<strong>Anterior</strong> <span>%title</span>', TRUE); ?>
    </li>
<?php } $nextPost = get_next_post(); if($nextPost) { ?>
    <li class="next">
    <?php $nextthumbnail = get_the_post_thumbnail($nextPost->ID, array(80,80) ); ?>
        <?php next_post_link('%link', $nextthumbnail . '<strong>Următor</strong> <span>%title</span>', TRUE); ?>
    </li>
<?php } ?>
1 mai 2014 11:24:24
Comentarii

Răspunsul doar cu cod este cel mai slab. Încearcă să adaugi niște indicații sau descriere editându-l. :)

Mayeenul Islam Mayeenul Islam
1 mai 2014 12:12:18

Cred că ai ratat întrebarea aici. OP nu a cerut linkuri cu thumbnail-uri. De asemenea, răspunsurile doar cu cod nu sunt considerate răspunsuri bune.

Pieter Goosen Pieter Goosen
10 aug. 2014 18:39:11

Mulțumesc, m-ai ajutat foarte mult. Cu câteva ajustări CSS am obținut o navigare destul de frumoasă. Am setat navigarea previous/next să aibă o poziție fixă, în timp ce am setat poziția absolută pentru fiecare astfel încât să poată fi afișate pe partea stângă/dreaptă a ecranului.

Adriano Monecchi Adriano Monecchi
20 apr. 2017 22:27:09