在每个帖子后附加<!--nextpage-->以强制附加页面链接(和静态内容)

时间:2014-12-16 作者:Jon Mitten

我试图影响内容或$post->post_content 直接,在帖子被wp_link_pages() 函数,在我网站上每篇帖子的内容之后注入一点静态文本或javascript。

我试着用add_filterfunctions.php 我的主题,但这并没有达到预期的效果。通过主题函数上的过滤器,我可以获得每个页面上的静态内容,而不是“mulligan”n+1页面。

例如,如果我的帖子有8个“自然”页面,我希望第9个页面是带有共享按钮或类似按钮的静态面板。

我如何“欺骗”wp_link_pages() 想想看,除了我作为作者在仪表板上输入的内容,这篇文章还有更多内容吗?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

多页设置不是通过查询发生的,它仅通过setup_postdata() 作用

您只需要增加一个全局变量,并使用\'the_post\' 在该函数结束时激发的钩子。

类似于:

add_action(\'the_post\', function(WP_Post $post) {
    global $multipage, $numpages, $pages;
    $multipage = 1; // ensure post is considered multipage: needed for single page posts
    $numpages++; // increment number of pages
    $pages[] = my_last_page_content($post); // set the static content for last page
});
不需要其他任何东西,因为wp_link_pages() 将了解当前帖子的页面数,并将相应地采取行动。

正如你所看到的,我使用了一个自定义my_last_page_content 函数为最后一页创建内容。我将post对象传递给该函数,因为可能需要构建“假”页面内容,例如获取post title或permalink。

下面是一个粗略的示例:

function my_last_page_content(WP_Post $post)
{
  $format = \'<div><a href="%s"><i class="fa fa-twitter"></i> %s</a></div>\';
  $url    = \'https://twitter.com/home?status=\'
            . urlencode(__(\'New blog post: \', \'txtdomain\'))
            . \'%22\' . urlencode(apply_filters(\'the_title\', $post->post_title)) . \'%22\'
            . \'%20\' . urlencode(get_permalink($post));

  return sprintf($format, $url, esc_html__(\'Share on Twitter\', \'txtdomain\') );
}

结束

相关推荐

Order posts by condition

我需要得到15个帖子。如果有带标签的featured, 我希望他们是第一个。如果没有,我希望其余的是随机帖子。我的想法是根据条件对帖子进行排序tag=featured 描述和随机。我可以用query_posts()?我的失败尝试:query_posts(\'posts_per_page=15&orderby=((tag=featured),rand)&order=desc\'; 谢谢你。