我不确定这是否是正确的方法,但我创建了一个带有一些选项的表单,用作过滤Wordpress循环的触发器。我没有设置保存任何表单信息。
<form id="options" method="POST">
<p>Date Started</p>
<select name="date-started">
<option value="any-date">Any Date</option>
<option value="2015">2015</option>
<option value="2014">2014</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
</select>
</form>
我想使用选择来按元数据过滤Wordpress循环。我有一个可以进行过滤的工作片段。
/* Filters the loop by custom meta data
https://codex.wordpress.org/Class_Reference/WP_Query#Parameters
*/
function comic_start_date( $query ) {
if ( $query->is_archive){
$query->query_vars["meta_key"] = 'date-started';
$query->query_vars["meta_value"] = '2015';
}
}
add_action( 'pre_get_posts', 'comic_start_date', 1 );
但是,我不知道如何将其连接到所选的选项。
我见过如下声明:
<?php if ($(("option[value='completed']")){//do something}?>
<?php if($ceg==1){//do something} ?>
<?php if($(this).value == 'volvo'){//do something} ?>
但是,我无法将这些功能结合在一起。也许我以错误的方式使用它们。
作为奖励,我希望从选项值中选择过滤函数变量并选择名称。我不确定这是否可行。我愿意接受一份有效的陈述。
答案 0 :(得分:0)
我找到了答案
这是有效的if语句:
这使用select标记中的名称和要定位的选项的值。
if ($_POST["date-started"] === '2008') {}
这是在我的过滤器周围显示的:
function date_started_2008( $query ) {
if ( $query->is_archive){
$query->query_vars["meta_key"] = 'date_started';
$query->query_vars["meta_value"] = '2008';
}
}
if ($_POST["date-started"] === '2008') {
add_action( 'pre_get_posts', 'date_started_2008', 1 ); }