在我看来,最好添加表单的端点mysite.com/pdf/<id>
或者类似你的东西。这样,您就可以避免将附件附加到帖子/页面,或者为每个pdf文件创建一个页面,这对于满足您的需要来说是多余的。
这是一个非常小的基本指南。您可以根据需要进行修改。
首先,我们add an endpoint 匹配表单的所有请求mysite.com/pdf/<id>
. 请注意,您应该flush the rewrite rules 使新端点正常工作。您可以通过进入设置->永久链接->保存更改或使用flush_rewrite_rules
. 应在shutdown
挂钩,或插件/主题(取消)激活。在上执行init
钩拳是一种坏习惯。
function my_endpoints() {
add_rewrite_endpoint( \'pdf\', EP_ROOT);
}
add_action( \'init\', \'my_endpoints\' );
然后我们使用
template_redirect
来处理请求。
function my_template_redirect() {
global $wp_query;
/* If it is a /pdf/<id> request then serve the file */
if(isset( $wp_query->query_vars[\'pdf\'])){
// You can use sanitize_file_name also
$pdf_id = intval($wp_query->query_vars[\'pdf\']);
/* Find the file and serve it */
}
return;
}
add_action( \'template_redirect\', \'my_template_redirect\' );