php - WordPress - 带分页的 get_post_type_archive_link

标签 php wordpress pagination

我正在构建一个 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/

相关文章:

php - 在没有 Eval 的情况下在字符串中执行 PHP 代码

php - 如何忽略 NOW() 的时间?

php - oscommerce 过时了吗?

css - wordpress 主题目录中的 font awesome 文件夹 'font' 放在哪里?

php - 在 Wordpress 中使用字体

php - 具有多个参数的分页问题

php - 纯 html 中的 Facebook/Twitter "Like"按钮

python - 使用 Pony ORM 进行分页

php - 如何在cakephp的分页中传递参数?

jquery - 如何从响应式设计中删除 slider