部分搜索wp_usermeta

时间:2017-05-16 作者:Nando Merino

我需要对执行部分搜索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>\';
}

1 个回复
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’。

笔记代码未经测试。

结束

相关推荐

How to customize user search

我正在开发一个自定义用户搜索,我正在使用找到的这个插件here:<?php function sul_user_listing($atts, $content = null) { global $post; extract(shortcode_atts(array( \"role\" => \'technician\', \"number\" => \'10\' )