如何正确检测访问wp-content/上传内容?

时间:2022-01-05 作者:please_help_me

不知道这是不是一个愚蠢的问题;然而,我一直在尝试检测用户何时访问PDF。我想知道用户访问特定PDF文件的频率。我一直在使用“template\\u redirect”挂钩,但下面的代码似乎无法正常运行。

function detect_access() {
            $server_request = $_SERVER[\'REQUEST_URI\'];

            if ( strpos($server_request, \'/wp-content/uploads\') !== false ) {
                wp_redirect( home_url(\'/\') );
                exit;
            }
        }
我真的很感谢您的帮助,是否有一个钩子可以解决这个问题/另一个我一直忽视的解决方案?干杯

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

WordPress不提供这些文件,当您请求PDF时,将文件提供给浏览器的是Apache/Nginx,不执行PHP。这是一件好事,因为它比PHP快得多,并且节省了大量服务器资源。

因此,您的尝试不会成功,对PHP的任何更改都无法修复它。

我想知道用户访问特定PDF文件的频率。

如果要跟踪视图,则有以下选项:

将PDF嵌入到您可以跟踪的页面中,将PDF放在付费墙或按钮后面,您可以跟踪这些按钮重定向到PDF。请注意,浏览器会缓存PDF,并且大多数浏览器在显示PDF时都会提供下载选项。因此,您的统计数据将不可靠。您可能无法从上载的PDF中获得想要的结果。

此外,如果有人共享PDF的直接URL,则不会触发任何跟踪。

唯一的另一种选择是,永远不要将URL共享到PDF,而是使用自定义URL,该URL使用服务器标题检索和显示URL。但是,这也可以通过浏览器保存,并可以缓存(甚至可以通过系统打印对话框打印到新的未跟踪PDF)。它还将更慢,并使用更多的服务器资源以获得最小的收益。

相关推荐

寻找带有自定义模板的WordPress PDF Converter?

我与许多公司合作,他们希望将bios转换为PDF文件进行下载。问题是我们找不到一个适合我们需要的插件解决方案。WP-MPDF在过去已经工作过,但它已被弃用,并且不适用于我们的一些客户托管的WP引擎(已知问题)。本质上,我们需要一种从WP模板创建PDF的方法,该模板允许我们排除某些高级自定义字段并控制文档的整体外观。我曾考虑过一种解决方法,创建一个单独的打印版本,上面有PDF下载,但这感觉很笨拙。感谢您的帮助!