Link-uri Următoare/Anterioare pentru Custom Post Type?

19 oct. 2011, 22:25:20
Vizualizări: 64K
Voturi: 14

Am un custom post type numit portfolio. Am nevoie de link-uri anterioare/următoare FĂRĂ plugin. Are cineva o soluție?

Exemplu de postare: http://themeforward.com/demo2/archives/portfolio/boat

<?php get_header(); ?>

<!-- Început container -->
<div class="clear">
<div id="full_container">
<div id="content2">
<div id="content">

<!-- Preluare postări -->
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>

<!-- Titlul postării -->
<h1>
    <?php the_title(); ?>
</h1>

<!-- Postarea -->
<?php the_content(); ?>

<!-- Etichete -->
<h3 class="tags">
    <?php the_tags('Etichete ',' / ','<br />'); ?>
</h3>

<!-- Sfârșit container -->
</div>

<!-- Postări Următoare/Anterioare -->
<div class="mp_archive2">
<div id="more_posts">
    <div class="oe">
        <?php previous_post_link('%link', '« Postarea anterioară', TRUE); ?>
    </div>

    <div class="re">
        <?php next_post_link('%link', 'Postarea următoare »', TRUE); ?>
    </div>
</div>
</div>

<?php endwhile; else: ?>
<p>Nu s-au găsit intrări care să se potrivească.</p>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
4
Comentarii

De ce această aversiune față de plugin-uri?

chrisguitarguy chrisguitarguy
19 oct. 2011 23:06:07

Pentru că dacă este un plugin, nu este integrat în temă.

AndrettiMilas AndrettiMilas
19 oct. 2011 23:26:16

@Lucas Wynne Dacă dorești să fie integrat, copiază/lipește unele coduri de plugin în fișierul functions.php al temei tale.

kaiser kaiser
19 oct. 2011 23:50:10

@kaiser presupunând, desigur, că te încadrezi în termenii de licență și condițiile de proprietate intelectuală, lucru care nu este chiar atât de ușor dacă produci o temă pentru vânzare.

Phill Healey Phill Healey
24 iul. 2016 14:20:46
Toate răspunsurile la întrebare 3
2
21
<?php
$prev_post = get_previous_post();
if($prev_post) {
   $prev_title = strip_tags(str_replace('"', '', $prev_post->post_title));
   echo "\t" . '<a rel="prev" href="' . get_permalink($prev_post->ID) . '" title="' . $prev_title. '" class=" ">&laquo; Postare anterioară<br /><strong>&quot;'. $prev_title . '&quot;</strong></a>' . "\n";
}

$next_post = get_next_post();
if($next_post) {
   $next_title = strip_tags(str_replace('"', '', $next_post->post_title));
   echo "\t" . '<a rel="next" href="' . get_permalink($next_post->ID) . '" title="' . $next_title. '" class=" ">Postare următoare &raquo;<br /><strong>&quot;'. $next_title . '&quot;</strong></a>' . "\n";
}
?>
20 nov. 2013 12:05:11
Comentarii

Te rog să formatezi codurile/răspunsul și să adaugi o explicație.

Maruti Mohanty Maruti Mohanty
20 nov. 2013 12:35:55

Este vreo modalitate de a limita asta doar la taxonomia în care se află CPT-ul?

gil hamer gil hamer
8 apr. 2014 12:28:20
8
15

Dacă aveți nevoie de link-uri pentru articolele următoare/precedente pentru postările individuale, există funcția încorporată next_post_link și corespondentul ei previous_post_link, ambele ar trebui folosite în cadrul buclei.

Pentru arhive, utilizați next_posts_link și previous_posts_link.

Toate acestea funcționează corect și cu tipurile personalizate de postări.

19 oct. 2011 23:12:33
Comentarii

Nu funcționează în tema mea.

AndrettiMilas AndrettiMilas
19 oct. 2011 23:26:05

Bine. Fără să văd codul tău, este greu să spun de ce. Există erori sau avertismente PHP? Ai mai multe articole introduse pentru ca funcțiile să preia link-uri?

chrisguitarguy chrisguitarguy
19 oct. 2011 23:46:52

Am actualizat întrebarea mea mai sus.

AndrettiMilas AndrettiMilas
19 oct. 2011 23:57:03

Încearcă cu al treilea argument TRUE și spune-ne rezultatele.

chrisguitarguy chrisguitarguy
20 oct. 2011 00:11:28

Al treilea argument TRUE?

AndrettiMilas AndrettiMilas
20 oct. 2011 00:13:18

Folosește acest cod <?php next_post_link('%link', 'Next post »'); ?> și <?php next_post_link('%link', 'Next post »'); ?>

chrisguitarguy chrisguitarguy
20 oct. 2011 00:16:29

Aceasta funcționează pe tipurile personalizate de postări, dar cum rămâne cu aceeași taxonomie a postării curente?

jepser jepser
4 oct. 2012 23:08:49

@jepser (Mă alătur târziu discuției) Ar trebui să specifici taxonomia de utilizat ca al 5-lea argument. Dacă treci doar primele 3 argumente și activezi al treilea pentru a rămâne în aceeași taxonomie, cel mai probabil va eșua deoarece taxonomia implicită este category (pe care probabil nu o are CPT-ul tău). Consultă articolele din codex menționate în răspuns.

Evan Mattson Evan Mattson
7 feb. 2014 21:39:25
Arată celelalte 3 comentarii
1

Puteți folosi get_adjacent_post pentru a obține obiectul postului anterior sau următor în buclă.

Puteți schimba al treilea parametru în true sau false pentru a obține obiectul postului următor sau anterior. get_adjacent_post( false, '', true);

Cu aceste cunoștințe putem folosi get_the_permalink pentru a obține URL-ul postărilor și pentru a vă crea propriile linkuri, fără a fi nevoie să eliminați orice elemente inutile pe care WordPress le adaugă în celelalte metode.

Această metodă este cea mai utilă dacă doriți să formatați singur hyperlink-urile și să aveți control total asupra formatării.

<?php
    $next_post = get_adjacent_post( false, '', false);
    $next_post_url = get_the_permalink($next_post);

    $previous_post = get_adjacent_post( false, '', true);
    $previous_post_url = get_the_permalink($previous_post);
?>

<a href="<?php echo $next_post_url;?>">Postare următoare</a>
<a href="<?php echo $previous_post_url;?>">Postare anterioară</a>
3 feb. 2022 13:40:09
Comentarii

În plus, dacă dorești să ai o buclă continuă de articole, poți folosi acest link: https://wplancer.com/infinite-next-and-previous-post-looping-in-wordpress/

SunnyRed SunnyRed
29 aug. 2022 19:55:52