我真的需要一些帮助,我不知道还有什么地方可以满足这个请求。我想在我的一篇帖子中添加一个短代码。模板标记get\\u next\\u post()和get\\u previous对我不起作用,因为我不想在每个帖子页面上进行帖子导航,我想控制它显示的位置。在我在帖子中创建的HTML结构的DIV中。
所以我需要的是从get\\u next\\u post()和get\\u previous\\u post()生成短代码
我真的需要一些帮助,我不知道还有什么地方可以满足这个请求。我想在我的一篇帖子中添加一个短代码。模板标记get\\u next\\u post()和get\\u previous对我不起作用,因为我不想在每个帖子页面上进行帖子导航,我想控制它显示的位置。在我在帖子中创建的HTML结构的DIV中。
所以我需要的是从get\\u next\\u post()和get\\u previous\\u post()生成短代码
这很简单。。。
// next
function next_shortcode($atts) {
// global $post; -unnecessary
return \'<div class="nav-next">\'.next_post_link( \'%link\', \'%title <span class="meta-nav">\' . _x( \'\', \'Next post link\', \' \' ) . \'</span>\',true ).\'</div>\';
}
add_shortcode( \'next\', \'next_shortcode\' );
//prev
function prev_shortcode($atts) {
//global $post; -unnecessary
return \'<div class="nav-previous">\'.next_post_link( \'%link\', \'%title <span class="meta-nav">\' . _x( \'\', \'Previous post link\', \' \' ) . \'</span>\',true ).\'</div>\';
}
add_shortcode( \'prev\', \'prev_shortcode\' );
祝你好运!这里有任何问题。。。。上面的代码有几个问题。您需要使用ob\\u start()包装短代码输出,以便使其在正确的位置回显到屏幕。此外,正如上面提到的一个注释所述,这些函数已经响应了它们的结果,因此将它们放在return语句中将无法正常工作。
以下是我的解决方案:
add_shortcode( \'prev\', \'prev_shortcode\' );
add_shortcode( \'next\', \'next_shortcode\' );
function next_shortcode($atts) {
global $post;
ob_start();
next_post_link( \'<div class="nav-next">%link</div>\', \'Next post link\' );
$result = ob_get_contents();
ob_end_clean();
return $result;
}
function prev_shortcode($atts) {
global $post;
ob_start();
previous_post_link( \'<div class="nav-previous">%link</div>\', \'Previous post link\' );
$result = ob_get_contents();
ob_end_clean();
return $result;
}
如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#