Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将wordpress postmeta表中的值放入foreach循环_Wordpress - Fatal编程技术网

如何将wordpress postmeta表中的值放入foreach循环

如何将wordpress postmeta表中的值放入foreach循环,wordpress,Wordpress,我试图将posteta键中的所有值放入foreach循环 我尝试过获取帖子meta和获取帖子自定义,但这些似乎只在帖子Id的基础上起作用 还尝试获取\u post\u custom\u值,但这似乎只返回当前post 我只需要某个meta_键的所有值。我正在尝试用值填充表单下拉列表 任何想法 这就是我现在拥有的 } ?> 选择一个位置 值=”“> 我很确定您需要一个定制的MySQL查询 以下是一些应该有效的方法: global $wpdb; $results = $wpdb->get_

我试图将posteta键中的所有值放入foreach循环

我尝试过获取帖子meta和获取帖子自定义,但这些似乎只在帖子Id的基础上起作用

还尝试获取\u post\u custom\u值,但这似乎只返回当前post

我只需要某个meta_键的所有值。我正在尝试用值填充表单下拉列表

任何想法

这就是我现在拥有的

}

?>
选择一个位置
值=”“>


我很确定您需要一个定制的MySQL查询

以下是一些应该有效的方法:

global $wpdb;

$results = $wpdb->get_results( "SELECT $wpdb->postmeta.meta_value FROM $wpdb->postmeta WHERE 1=1 AND $wpdb->postmeta.meta_key = 'geo_short_address'" );
$options = array();
foreach ($results as $result) {
    $options[$result->meta_value] = ucwords( $result->meta_value );
}

echo '<select class="field" name="country">';
foreach ($options as $key => $value) {
    echo "<option value='$key'" . ( $_GET['country'] == $value ? " selected='selected'" : "" ) . ">$value</option>";
}
'</select>';
global$wpdb;
$results=$wpdb->get_results(“从$wpdb->postemta中选择$wpdb->postemta.meta_值,其中1=1和$wpdb->postemta.meta_键='geo_short_address'”);
$options=array();
foreach($results作为$result){
$options[$result->meta_value]=ucwords($result->meta_value);
}
回声';
foreach($key=>$value的选项){
回显“$value”;
}
'';
只需将
'custom_key'
替换为您的自定义字段名,这将为您提供该自定义字段的所有值


我现在无法测试代码,因此如果代码不起作用,请随时告诉我。

非常感谢您的帮助-我编辑了我的问题以反映您的答案-它无法填充。您能指出我可能出错的地方吗。。。?thanksI在我的代码中有一个小错误,但我认为这不是原因。任何方式将
ucwords($meta\u值)
更改为
ucwords($result->meta\u值)
。然后在关闭
foreach($results as$result)
循环的
}
之后执行
var\u dump($results$options)
并添加该循环。我不确定查询是否没有得到结果,或者是其他原因。添加了这个foreach($results as$result){$options[$result->meta_value]=ucwords($result->meta_value);}echo var_dump($results,$options),但没有返回任何内容?结果和选项为Null..很抱歉var_dump数组为空
?>
             </select> 
        <select name="country" id="country">
        <option value="selected">Select a location</option>
        <?php




        foreach ($options as $key => $value) {
            ?>
        <?php $retaincount = $value  ?>
                       <option <?php if ($_GET['country'] == $retaincount ) { ?
         >selected="<?php echo $value; ?>" <?php }; ?>value="<?php echo $value ?>">
         <?  php echo $value?></option>


            <?php

    }
    ?>
             </select> 
    <p>
    <input type="submit" value="<?php _e('Filter', 'appthemes'); ?>"
            class="submit" />
    <input type="hidden" name="action" value="Filter" />

    </p>
    <div class="clear"></div>
        </form>
        <?php endif;



        }

        Thanks
global $wpdb;

$results = $wpdb->get_results( "SELECT $wpdb->postmeta.meta_value FROM $wpdb->postmeta WHERE 1=1 AND $wpdb->postmeta.meta_key = 'geo_short_address'" );
$options = array();
foreach ($results as $result) {
    $options[$result->meta_value] = ucwords( $result->meta_value );
}

echo '<select class="field" name="country">';
foreach ($options as $key => $value) {
    echo "<option value='$key'" . ( $_GET['country'] == $value ? " selected='selected'" : "" ) . ">$value</option>";
}
'</select>';