如何将WordPress设置为只读状态?
我有一个使用只读数据库访问扩展从属实例的设置,但我看到很多日志数据,WordPress仍在尝试写入数据库。
update_{post_type}_metadata
, set_transient
, wpdb
... 基本上,停止任何试图写入的操作都是理想的。我可以很容易地检查主实例和从实例,这样我就可以很早地修改挂钩。
试图缩短更新元数据功能似乎可能会消除一个向量,但我担心剩下的涉及修改WP核心。
add_filter ( \'update_post_metadata\', \'__return_false\', 99 );
$result = update_post_meta( -1, \'test-key\', \'test-value\' );
echo $result;
有什么建议吗?
<小时>HyperDB 看来这是一个更有希望的长期解决方案。
SO网友:cowgill
WordPress在只读模式下无法正常工作。缓存和其他任务取决于数据库。
然而,如果您仍然想继续,有几个选项。
将数据库用户权限设置为“只读”使用函数拦截所有db查询。我们在我们的主题演示站点上使用它来防止db写入要使用的功能:
/**
* Whitelist "SELECT" and "SHOW FULL COLUMNS" queries.
*/
function my_readonly_filter( $query ) {
global $wpdb;
if ( preg_match( \'/^\\s*select|show full columns\\s+/i\', $query ) ) {
return $query;
}
// Return arbitrary query for everything else otherwise you get \'empty query\' db errors.
return "SELECT ID from $wpdb->posts LIMIT 1;";
}
add_filter( \'query\', \'my_readonly_filter\' );