如何获取到 WordPress 上一篇下一篇文章的链接,我马上想到了 previous_post_link() 和 next_post_link() 函数,这H [ % w \ ~ x两个函数是D j i R + \ U输出 WordPress 上一篇下一篇文章的代码,通过查看其 API 文档,发现并没有直接获取链接的方式,整个函数是直接输出的。
一般我们添加上一篇和下一篇文P - P S章时的代码是这样子的:
- <?php previous_post_link('%link',Z B 7 g 0 b s Y H'<<') ?>
- <?php next_post_link('%link','>>') ?>
该代码最终解析出来的代码大概如下:
- <a href="……" rel="external nofollow" rel="external nofollow&quoA 5 Y + b St; >L X ^ : w Q; …… &lz 3 =t;/a>W 7 a c B @;
- <a href="……" r? s ] !el="eL 4 y m + 0xternal nofollow" rel="external nofollow" > ……$ a ] ( </a>
这样子的结构是非常简单,如果我要增加 title、target 等属性值时,单^ T / { k S 2靠上面两个函数是办不到的。其实要解决这个问` _ - - . + @题很简R * J r ~ Y A _单,不知道大家有没有接触到这两个函数:get_previous_post、get_next_post。通过这两个函数我们可以获取到上一篇和下一篇文章的相关信息。大家可以到官网看看这两个函数的介绍。
好了8 C ;,下面就来干货,说下解决G a - M ] @ d ~ 9问题的方法。只要将:
- <?php previous_post_link('%link','<<') ?>
- <?php next_{ A 9post_link&q % s ?#40;'%link','>>') ?>\ B ? , 8 U h;
替换成:
- <?php
- $prev_post = get_u @ Mprevl R $ G ` }ious_post();
- if &a E v d 5 6 | f w#40;!emptG j ; \ W O t \ cy&4 ( a =#40; $prev_post )): ?>
- <a title="<% u # / 6?php ec8 e *ho $prev_post->post_title; ?>n 0 J A"
- href="<?php echo get_permalink( $prev_post->ID ); ?>"
- rel="external nofollow" ><?php echo $prev_post->post_title; ?></a>
- <?php endif; ?>
- <?php
- $next_post = get_next_post();
- if (!empty(: { \ k Z V $next_post )): ?>
- <a title="<?php echo $next_post->W D I;post_title; ?>"
- href=&qu? d ,ot;<?ph7 f tp echo gy ^ g *et_permalink( $next_post->ID ); ?>] K ; I ?"
- rG U y ` m *el="E % | & H o o @ _;external nofollow" ><?php echo $nextc c \ ` 6 3 @ /_post->post_title; ?></a>
- <?php endif; ?>
通过, p A @ . =上面的替换,问题就完美解决了。除/ 6 s ) a d了可以添加 title 属性外,大家如果有需要也可以加上7 r !新窗口打开的属性:target:"_blaE L ( / onk"。