对于那些可能不知道的人,在WP中我们可以通过添加<--nextpage-->
来分割帖子,我们希望我们的分页符出现。这将创建一个分页,其中每个部分都有自己的页面。
我想要做的是,取决于URL中的utm_source(例如:?utm_source = fb)我希望显示分页格式,否则将显示单页格式。
简而言之,如果源是FB,我的帖子中的<--nextpage-->
将被执行,或者如果源不是FB,<--nextpage-->
将不会执行。
如果我只知道如何与后端的帖子内容进行交互,而不是用户可以看到的最终结果,我可以用JS / JQuery做些什么。如果必须使用PHP,我已经准备好学会使其工作。由于这些原因,我没有代码可供展示,但不幸的是,我花了很多时间寻找一个没有成功的解决方案。
WP很早就确定并完成了内容的拆分。我最终通过向循环开始添加动作来设法让它工作,如果源不是FB,则剥离下一页注释。 \
仔细考虑是否要限制此操作在任何其他情况下触发,或限制仅触发某些帖子。目前它将尝试剥离每个帖子的下一页。
function strip_next_tags_action () {
global $post;
// put any other if conditions here
if ( !isset( $_GET['utm_source'] ) or !($_GET['utm_source'] == 'fb')) {
$post->post_content = str_replace("<!--nextpage-->", "",
$post->post_content, $count);
}
return $post;
}
add_action ('loop_start', 'strip_next_tags_action');
最好在后端完成。您需要修改single.php
帖子模板并使用PHP代码根据您的查询变量显示(或不显示)部分。
过度简化的例子:
<?php
get_header();
if( !isset( $_GET['utm_source'] ) ) $_GET['utm_source'] = '';
switch( $_GET['utm_source'] ){
case 'fb':
// do the Facebook stuff here
the_excerpt();
break;
case 'something-else':
// do the other stuff here
the_excerpt();
break;
default:
// if no matching utm_source variable, do this instead
the_content();
}
get_footer();