如何优化get_option()的SQL查询数?

时间:2019-04-12 17:18:45

标签: php wordpress

$name = get_option('name');
$phone = get_option('phone');
$street = get_option('street');
$postal_code = get_option('postal_code');
$email = get_option('email');

它将运行5个其他查询。可以最小化到1吗?

3 个答案:

答案 0 :(得分:2)

您可以使用wp_load_alloptions()

答案 1 :(得分:2)

这将提高性能

global $wpdb;
$sql = "SELECT `option_name`,`option_value` FROM `wp_options` WHERE `option_name` in('name', 'phone', 'street', 'postal_code', 'email')";
$result = $wpdb->get_results( $sql, OBJECT_K );

//access option values, ex: name
var_dump($result['name']->option_value);

答案 2 :(得分:0)

在大多数情况下,这些选项可能不是分开的查询,而是在页面加载时将选项加载到全局的,而get_option函数则在运行查询之前先从全局加载。

如果您有自定义选项,还可以通过在更新选项时将自动加载设置为“是”,将这些选项添加到全局选项中。

Codex: update_option