我需要对执行部分搜索wp_usermeta
, 我有以下代码来搜索wp_usermeta
, 但我需要你做部分搜索。
<form id="filtros" method="GET">
<label for="poblacion">Poblacion:</label> <input type="text" name="poblacion">
<label for="trabajo">Trabajos:</label> <input type="text" name="trabajo">
<input type="submit">
</form>
<?php
$args = array(
\'role\' => \'empresa-BBDD\',
\'meta_key\' => \'poblacion\',
\'meta_value\' => $_GET[\'poblacion\'],
\'meta_key\' => \'categorias\',
\'meta_value\' => $_GET[\'trabajo\'],
\'orderby\' => \'nicename\',
\'order\' => \'ASC\',
);
$usuarios = get_users( $args );
foreach ($usuarios as $usuario) {
echo \'<div class="empresa-bbdd">\';
echo \'<h4><a href="/perfil-empresa/?id=\'.$usuario->ID.\'">\' . $usuario->user_firstname . \'</a></h4>\';
echo \'<p class="dir-emp"><i class="fa fa-map-marker" aria-hidden="true"></i> \' . $usuario->calle . \', \' . $usuario->cp . \', \' . $usuario->poblacion . \'</p>\';
$categorias = $usuario->categorias;
$replace = array(\'[\', \']\', \'"\');
echo \'<p class="cat-emp"><b>Trabajos que realiza:</b> \'. (str_replace($replace," ",$categorias)) .\'</p>\';
echo \'</div>\';
}
SO网友:Max Yudin
<?php
// ALWAYS sanitize user input!
$poblacion = sanitize_text_field( $_GET[\'poblacion\'] );
$trabajo = sanitize_text_field( $_GET[\'trabajo\'] );
$usuarios = get_users(
array(
\'role\' => \'empresa-BBDD\',
\'order_by\' => \'nicename\',
\'order\' => \'ASC\',
\'meta_query\' => array( // search for user meta data
\'relation\' => \'AND\',
array(
\'key\' => \'poblacion\',
\'value\' => $poblacion,
\'compare\' => \'LIKE\' // partial comparison
),
array(
\'key\' => \'trabajo\',
\'value\' => $trabajo,
\'compare\' => \'LIKE\' // partial comparison
)
)
)
);
\'relation\' => \'AND\'
用于查找两个键都匹配的用户。否则,请使用“或”。
\'compare\' => \'LIKE\'
与相同\'%LIKE%\'
在MySQL中,也就是说在两端使用“通配符”。搜索“34”将得到“12”34\', \'2.345\'和\'34567’。
笔记代码未经测试。