Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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 foreach关联数组循环的参数无效_Wordpress_Foreach - Fatal编程技术网

Wordpress foreach关联数组循环的参数无效

Wordpress foreach关联数组循环的参数无效,wordpress,foreach,Wordpress,Foreach,为上一个关联数组foreach循环提供的参数无效。我在不同的电子邮件地址之间循环并创建一个数组。我做错什么了吗?我应该创建一个空数组吗 干杯 global $wpdb, $wpsc_variations; $stock_table = $wpdb->prefix . 'postmeta'; $posts_table = $wpdb->prefix . 'posts'; $q = 'SELECT DISTINCT post_id FROM ' . $

为上一个关联数组foreach循环提供的参数无效。我在不同的电子邮件地址之间循环并创建一个数组。我做错什么了吗?我应该创建一个空数组吗

干杯

    global $wpdb, $wpsc_variations;

    $stock_table = $wpdb->prefix . 'postmeta';
    $posts_table = $wpdb->prefix . 'posts';

    $q = 'SELECT DISTINCT post_id FROM ' . $stock_table . ' WHERE meta_key=\'' . NOTIFY_META . '\' AND meta_value=1';
    $q_assoc_arr = $wpdb->get_results($q, ARRAY_A);

    foreach($q_assoc_arr as $row) {

        $product_id = $row['post_id'];

        $product_data = get_post_custom( $product_id );
        $product_data['meta'] = maybe_unserialize( $product_data );
        foreach ( $product_data['meta'] as $meta_key => $meta_value ) {
            $product_data['meta'][$meta_key] = $meta_value[0];
        }

        if ($product_data['meta']['_wpsc_stock'] > 0) {

            foreach (get_post_meta($product_id, NOTIFY_EMAILS_META, true) as $k=>$v) {

                $emails[] = $v;

            }

您的第三个
foreach
依赖于的输出,但您将true作为第三个参数传递。这告诉
get\u post\u meta
返回单个值作为字符串,而不是数组

foreach
需要一个数组进行迭代。:)


注意:此部分肯定会失败,但如果数组未通过,则您的其他
foreach
实例也可能会失败。

谢谢spencer,有没有关于如何格式化get\u post\u meta的建议?如果有多个名为
NOTIFY\u EMAILS\u meta的自定义字段,然后只需将
false
作为第三个参数传递给
get\u post\u meta
,或者干脆将该参数全部关闭,它将默认为
false