如何创建下载pdf文件的端点?

时间:2020-12-01 作者:patryk siuta

我希望登录的用户能够下载PDF文件,但看不到文件的真实路径。此外,在这个PDF文件中,我输入了有关用户名和下载日期的信息。

我创建了一个新端点“;下载“;使下载地址如下所示:我的网站。com/post-name/download/attached-id

function my_custom_endpoint() {
    add_rewrite_endpoint( \'download\', EP_PERMALINK | EP_PAGES );
}  
add_action( \'init\', \'my_custom_endpoint\' );
但我不知道调用此端点后不加载页面的钩子是什么,而是调用我的函数并将PDF文件返回给用户。

1 个回复
SO网友:maryisdead

一个很好的勾搭行动是template_redirect. 在那里,您可以像这样查询端点:

add_action(\'template_redirect\', function() {
    global $wp_query;
    
    // Not your endpoint and not a page/post, we do nothing.
    if (!isset( $wp_query->query_vars[\'download\']) || ! is_singular()) {
        return;
    }
    
    // Here goes your magic!
    […]
    
    // And probably a good idea to exit if you serve files.
    exit;
});
还有一个great tutorial about endpoints 在上制作WordPress。

相关推荐

Conditional action hooks

我正在开发一个使用AJAX的插件,但我在控制代码流方面遇到了困难。我想在运行条件后挂接函数。我的钩子在控制结构内部添加时不会启动,但在外部会启动。我还有一个触发AJAX请求的事件,这只能在用户点击触发事件后,在加载所有DOM之后发生。AJAX请求告诉PHP函数设置cookie。它设置了cookie,但在阅读关于cookie的PHP文档时,我发现它们只能在发送任何输出后设置,但我还是做到了这一点?我读过WordPress初始化序列,但这并没有帮助我解决这个问题。这是我的密码:add_action(\'wp_