我正在构建一个包含数百个动态生成的 PHP 页面的 Wordpress 网站。推荐的方法是什么?
I am building a Wordpress website with several hundred dynamically generated PHP pages. What would be the recommended way to do this?
我的 Wordpress 网站 (gcsemathsworksheets.com) 将包含至少 300-400 个用 PHP 编码的随机生成的数学工作表。目前我正在使用简码插件 (PHP-code-for-posts) 来插入 PHP 代码,但该插件已经几个月没有更新了,看起来它已从 wordpress.org.
我的选择似乎是:
- 使用不同的 PHP 简码插件
- 使用 https://wordpress.stackexchange.com/questions/73440/how-to-add-a-php-custom-page-to-wordpress?rq=1
中提到的自定义模板(每个工作表一个新模板)
还有其他选择吗?推荐的方法是什么(就最佳 practices/performance/security 等而言)?
感谢您的宝贵时间。
我认为最佳做法是传递 "random" 变量。
并将它们保存到具有 id 的数据库中。因此,如果您需要模板,请在实时
中生成它
GET /worksheet/generate/[ID]
MfG R0b1ns
安全性:
评估其他代码的代码(如您的插件所做的)被认为是更大的安全风险;即使是百万用户加插件的作者也会出错 https://blog.sucuri.net/2013/05/w3-total-cache-and-wp-super-cache-vulnerability-being-targeted-in-the-wild.html
您必须使用任一方法清理输入;所以使用您自己的页面模板可能是更安全的选择。
性能:
性能因插件而异,具体取决于设计的好坏。使用您的代码的页面模板可能比通过第 3 方插件的代码执行得更好,但差异可能不明显。
您的描述表明页面 无法缓存。但是,在 PHP 7(甚至可能在 5.5+)下,使用 opcache(缓存 "compiled" 站点脚本的副本)可以提高性能,您的站点将从中受益。 然而,通过您的插件(可能还有它的等效项)提供的代码是动态评估的,因此不会被 opcached。
我有一个自定义页面,可为 2000 个不同的 "URL" 请求提供不同的动态内容;然而,这些只涉及 2 个参数(来自一个查询变量),例如WP 重写规则设置为将 http://example.com/country/egypt/money
的请求更改为 custpage/?queryvar='egypt/money'
以交付内容。如果需要,我可以提供重写示例。
您的页面输出可能更复杂并且取决于许多不同的变量。如果是这样,创建单独的自定义页面来处理不同类型的数学问题可能会提高性能和简单性。
长期,维护和扩展。
同样,自定义模板是必经之路。完成学习曲线后,这些知识将使您更容易增强和扩展当前的 Wordpress 站点以及您可能希望建立的其他站点。
我的 Wordpress 网站 (gcsemathsworksheets.com) 将包含至少 300-400 个用 PHP 编码的随机生成的数学工作表。目前我正在使用简码插件 (PHP-code-for-posts) 来插入 PHP 代码,但该插件已经几个月没有更新了,看起来它已从 wordpress.org.
我的选择似乎是:
- 使用不同的 PHP 简码插件
- 使用 https://wordpress.stackexchange.com/questions/73440/how-to-add-a-php-custom-page-to-wordpress?rq=1 中提到的自定义模板(每个工作表一个新模板)
还有其他选择吗?推荐的方法是什么(就最佳 practices/performance/security 等而言)?
感谢您的宝贵时间。
我认为最佳做法是传递 "random" 变量。 并将它们保存到具有 id 的数据库中。因此,如果您需要模板,请在实时
中生成它GET /worksheet/generate/[ID]
MfG R0b1ns
安全性:
评估其他代码的代码(如您的插件所做的)被认为是更大的安全风险;即使是百万用户加插件的作者也会出错 https://blog.sucuri.net/2013/05/w3-total-cache-and-wp-super-cache-vulnerability-being-targeted-in-the-wild.html
您必须使用任一方法清理输入;所以使用您自己的页面模板可能是更安全的选择。
性能:
性能因插件而异,具体取决于设计的好坏。使用您的代码的页面模板可能比通过第 3 方插件的代码执行得更好,但差异可能不明显。
您的描述表明页面 无法缓存。但是,在 PHP 7(甚至可能在 5.5+)下,使用 opcache(缓存 "compiled" 站点脚本的副本)可以提高性能,您的站点将从中受益。 然而,通过您的插件(可能还有它的等效项)提供的代码是动态评估的,因此不会被 opcached。
我有一个自定义页面,可为 2000 个不同的 "URL" 请求提供不同的动态内容;然而,这些只涉及 2 个参数(来自一个查询变量),例如WP 重写规则设置为将 http://example.com/country/egypt/money
的请求更改为 custpage/?queryvar='egypt/money'
以交付内容。如果需要,我可以提供重写示例。
您的页面输出可能更复杂并且取决于许多不同的变量。如果是这样,创建单独的自定义页面来处理不同类型的数学问题可能会提高性能和简单性。
长期,维护和扩展。
同样,自定义模板是必经之路。完成学习曲线后,这些知识将使您更容易增强和扩展当前的 Wordpress 站点以及您可能希望建立的其他站点。