我有一个自己使用的自定义脚本/插件,可以创建一篇帖子以及一些Posteta信息。现在,我有多个$wpdb->insert
, 但我想把它浓缩成一个问题。我该怎么做?
这是我当前的代码:
$meta_table = $wpdb->prefix . \'postmeta\';
$wpdb->insert(
$meta_table,
array(
\'post_id\' => $post_id, // Already defined
\'meta_key\' => \'client-pwd\',
\'meta_value\' => $post_pwd // Already defined
)
);
$wpdb->insert(
$meta_table,
array(
\'post_id\' => $post_id,
\'meta_key\' => \'gallery-status\',
\'meta_value\' => \'private\'
)
);
$wpdb->insert(
$meta_table,
array(
\'post_id\' => $post_id,
\'meta_key\' => \'meta-description\',
\'meta_value\' => \'Description...\'
)
);
$wpdb->insert(
$meta_table,
array(
\'post_id\' => $post_id,
\'meta_key\' => \'can-purchase\',
\'meta_value\' => \'yes\'
)
);
$wpdb->insert(
$meta_table,
array(
\'post_id\' => $post_id,
\'meta_key\' => \'can-email\',
\'meta_value\' => \'yes\'
)
);
$wpdb->insert(
$meta_table,
array(
\'post_id\' => $post_id,
\'meta_key\' => \'can-download\',
\'meta_value\' => \'yes\'
)
);
SO网友:Milo
不能通过wpdb插入多行insert
, 您必须使用原始SQL:
INSERT into $meta_table (post_id, meta_key, meta_value)
VALUES
(\'val1\', \'val2\', \'val3\'),
(\'otherval1\', \'otherval2\', \'otherval3\')
However-
您应该始终在存在函数的地方使用API-使用
add_post_meta
因此,您的插件与WordPress环境集成,其行为可以修改,而无需直接编辑插件的文件。