您想要做的是可能的--MySQL可以做数学--但是WP_Query
本机无法处理此问题。您需要应用一两个过滤器。您最终会对生成的值进行排序,这不是特别有效。也就是说,MySQL将读取表中这两个键的所有行,进行一些计算,然后排序。
我的建议是存储第三把钥匙,profitability
-- 当您保存post键,然后对其进行排序,而不是试图生成它时,这就是SQL。非常粗糙的东西,像这样:
function generate_profitability_wpse_138683($meta_id,$object_id,$meta_key,$_meta_value) {
if (\'paidusd\' === $meta_key) {
$tips = get_post_meta($object_id,\'totaltips\');
if (!empty($tips)) {
$profit = (int)$_meta_value/(int)$tips;
}
} elseif (\'totaltips\' === $meta_key) {
$paid = get_post_meta($object_id,\'paidusd\');
if (!empty($paid)) {
$profit = (int)$paid/(int)$_meta_value;
}
}
if (!empty($profit)) {
update_post_meta($object_id,\'profitability\',$profit);
}
}
add_action(\'updated_post_meta\',\'generate_profitability_wpse_138683\',10,4);