我想要“nextpagelink”短代码[nextpage_shortcode] 我可以将其放入内容中。
我见过一些帖子说,由于Wordpress呈现内容的方式,你不能在内容中放置任何与wp\\U link\\u页面相关的内容。
正如您所见,“nextpagelink”的文本会根据幻灯片的不同而变化。
我希望短代码能够反映这一点。
下面是我想做的事情的示意图:
两个“开始”按钮都链接到第二张幻灯片。
这就是我目前正在研究的内容:
function nextpage_shortcode( $atts ) { wp_link_pages( array(
\'before\' => \'<div id="slideshow">\',
\'after\' => \'</div>\',
\'next_or_number\' => \'next\',
\'nextpagelink\' => ( get_query_var(\'page\') < 2 ) ? \'<span id="next"> BEGIN </span>\' : \'<span id="next"> NEXT </span>\' ) );
return [\'nextpagelink\'];
} add_shortcode( \'nextpage_short\', \'nextpage_shortcode\' );
它在某种程度上起作用。
它会在内容上方发布“nextpagelink”按钮,但不会在内容内部发布。
不确定如何继续。
请帮忙!
最合适的回答,由SO网友:Sally CJ 整理而成
wp_link_pages()
默认情况下,会回显链接(或输出),除非设置echo
parameter 到0
(或false
). 其次,您的代码返回array
具有nextpagelink
作为唯一的项目/值。
但无论如何,如果您只想链接到下一页wp_link_pages()
不会是您应该使用的,因为它输出所有页面链接(开始、下一个、上一个等)。
相反,你可以试试这个,它对我很有效:
function nextpage_shortcode( $atts ) {
global $page, $numpages, $multipage;
if ( $multipage ) {
$i = max( 1, $page );
if ( $i < 2 ) {
$text = \'<span id="next"> BEGIN </span>\';
} elseif ( $i < $numpages ) {
$text = \'<span id="next"> NEXT </span>\';
}
if ( ! empty( $text ) ) {
$link = _wp_link_page( $i + 1 );
return $link . $text . \'</a>\';
}
}
return \'\';
}
add_shortcode( \'nextpage_short\', \'nextpage_shortcode\' );
但是,你应该知道我正在使用
_wp_link_page()
这是一个私人功能。所以你可能想
copy the source, 重命名函数(例如
my_link_page
), 和使用
my_link_page()
在上述代码中。
我希望这会有所帮助,并记住<!--more-->
由于您专门处理<!--nextpage-->
仅标记。