我正在构建一个 WordPress 网站,具有视频自定义帖子类型。所有视频都显示在分页存档页面上,并在单击时以模式打开。
由于网站搜索在搜索结果中返回单个视频帖子,因此我添加了一个功能,可以在访问单个视频帖子时重定向到存档页面。我还将帖子 ID 附加到 URL,并且在存档页面中我有代码检查“show”参数以触发模式打开:
add_action( 'template_redirect', 'custom_post_single_redirect_management' );
function custom_post_single_redirect_management() {
global $post;
if(is_singular( 'video' )) {
wp_redirect( get_post_type_archive_link('video').'?show='.$post->ID, 301 );
exit;
}
}
到目前为止一切顺利,一切正常。
我现在遇到的问题是,当访问的视频不在第 1 页上时,我无法打开模式来显示视频,希望您能提供帮助。
有人对处理这个问题有建议吗?是否可以从上面的函数中检查视频将位于存档页面中的哪个页面,然后在重定向上添加新参数?即 '?show='.$post->ID.'&page=2'
感谢您的帮助!
最佳答案
我不确定回答自己的问题是否犯了失礼,但也许这会帮助其他偶然发现这个问题的人。
我找不到找到分页号的简单方法。相反,我使用 pre_get_post()在我的functions.php中检查“show”参数,如果它被传递到页面,我使用stick_post()使在“show”参数中传递的帖子 ID 成为粘性。
为了让我的自定义帖子类型存档显示粘性,我使用了 this snippet 。最后我用了unstick_post()在我的模板中删除“粘性”。
总而言之,这会将相关帖子带到我的存档中的第 1 页,然后在模式中打开。有点 hacky,但它有效。
如果有更好的方法来实现此目的,请发布它,我会尽可能接受您的答案。
关于php - WordPress - 带分页的 get_post_type_archive_link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186998/