1

我对 meta_query 有一些情境问题。客户搜索 IV,但结果包含私有(原始词是私有的)。我只想显示包含 IV(罗马数字)的帖子。我的 meta_query 搜索来自自定义插件中的标题、子标题和描述。我找到了 REGEXP,但我找不到从标题、副标题和描述中找到漫游数字的正确方法。

客户只能找到罗马数字,他们也可以找到任何单词等。

    $args = 数组(
        'numberposts' => -1,
        '类别' => 0,
        'orderby' => 'post_date',
        '订单' => 'DESC',
        'meta_query' => 数组(
            '关系' => '或',
            大批(
                '键' => '标题',
                '价值' => $search_term,
                '比较' => '喜欢',
            ),
            大批(
                'key' => '副标题',
                '价值' => $search_term,
                '比较' => '喜欢',
            ),
            大批(
                '键' => '描述',
                '价值' => $search_term,
                '比较' => '喜欢',
            )
        ),
        'post_type' => '画廊',
        'post_status' => '发布',
        'suppress_filters' => 真
    );

    $posts = get_posts($args, ARRAY_A);

4

2 回答 2

0

正则表达式应包含如下罗马数字(假设$search_term仅包含请求的罗马数字:

$regEx = '/(' . strtoupper($search_term) . ')/g';
于 2019-04-09T19:50:35.780 回答
0

我使用正则表达式解决了标题、描述和子标题的问题。仍然在寻找最佳答案并不是一个好主意。

$tempFlag = false;      
foreach (explode(" ", $description) as $temp) {
            if (preg_match('/^(?=[MDCLXVI])M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$/', $temp)) {

                if (in_array($temp, $romeNumber)) {
                    $tempFlag = true;
                }
            }
        }
于 2019-04-10T21:46:05.490 回答