正在尝试基于表单提交进行查询。表单上的一个select包含:
wp_dropdown_categories( \'name=specialty&taxonomy=specialties&orderby=name&show_option_none=Select a Specialty&show_none_value=-1&selected=\'.$p_specialty );
然后获取专业值并创建一个数组:
if (isset($_GET[\'specialty\']) && !empty($_GET[\'specialty\']) && $_GET[\'specialty\'] > 0 ) {
$specialty = true;
++$qs_count;
$p_specialty = $_GET[\'specialty\'];
$p_specialty_array = array (
\'key\' => \'specialties\',
\'value\' => $p_specialty,
\'compare\' => \'LIKE\',
);
$term_specialty = get_term($p_specialty);
$term_specialty = $term_specialty->name;
}
$p\\u specialty\\u阵列随后用于:
$meta_query = array (
\'relation\' => \'AND\',
array (
\'q_last\' => array (
\'key\' => \'provider_name_last_name\',
),
\'q_first\' => array (
\'key\' => \'provider_name_first_name\',
),
\'compare\' => \'IN\',
$p_fname_array,
$p_lname_array,
$p_new_array,
$p_gender_array,
$p_clinic_array,
$p_specialty_array,
),
);
但这会导致一个问题,因为一个专业的ID是20,另一个是204。当使用compare=将表单提交给specialty=20时,它会返回specialty为20或204(而不仅仅是20)的帖子。
当我将比较改为“=”时,即使有专业=20的帖子,也不会返回任何内容。
我还尝试将value\\u field=\'slug\'添加到wp\\u下拉列表\\u类别中,但不知道如何实现这一点(这可能可行,我只是不知道在使用slug时如何编写数组)。
我当然更喜欢一种只获取“=”值而不是“LIKE”的方法,以避免此类问题,但无法使其正常工作。
“我如何使用compare”完成此操作="E;,或者别的什么,我只选了专业?
Update
我尝试了以下方法,但结果都是空的:
if (isset($_GET[\'specialty\']) && !empty($_GET[\'specialty\']) && $_GET[\'specialty\'] > 0 ) {
$specialty = true;
++$qs_count;
$p_specialty = $_GET[\'specialty\'];
$p_spec_minus = $p_specialty - 1;
$p_specialty_plus = $p_specialty + 1;
echo \'plus: \'.$p_specialty_plus;
$p_specialty_array = array (
\'key\' => \'specialties\',
\'value\' => array( $p_spec_minus, $p_specialty_plus),
\'compare\' => \'BETWEEN\',
);
$term_specialty = get_term($p_specialty);
$term_specialty = $term_specialty->name;
}
在下一篇文章中,我尝试对20个进行硬编码,但结果都是空的:
if (isset($_GET[\'specialty\']) && !empty($_GET[\'specialty\']) && $_GET[\'specialty\'] > 0 ) {
$specialty = true;
++$qs_count;
$p_specialty = $_GET[\'specialty\'];
echo \'plus: \'.$p_specialty_plus;
$p_specialty_array = array (
\'key\' => \'specialties\',
\'value\' => \'20\',
\'compare\' => \'=\',
);
$term_specialty = get_term($p_specialty);
$term_specialty = $term_specialty->name;
}
我很困惑为什么这不起作用。