Intereting Posts
Как использовать wp_rel_nofollow для добавления nofollow только к внешним ссылкам? Разработка различных выпусков веб-сайтов на основе стран? WordPress Export Import Site Navigation Menu Интеграция с темами и плагинами под * одним * паролем Как я могу назвать внешний php без класса WordPress в functions.php? Список фильтров по уникальной дилемме мета значения Перемещение пользователей и паролей с одного сайта wordpress на другой Вывод случайного (пользовательского) размера изображения В wordpress я манипулирую с ответом 404. Я хочу дать ответ до того, как ошибка 404 предоставлена ​​google WP_Query не извлекается случайным порядком под родительским Лучший способ для плагина для определения настраиваемого шаблона архива типа публикации? Перемещение из субдомена в корень Как скрыть определенные поля профиля пользователя? TinyMCE: добавление CSS в формат Получить текущий срок в single.php

Наличие функции внутри цикла

Я пытаюсь создать редактор внешнего интерфейса для WooCommerce и иметь цикл, который возвращает все продукты для текущего пользователя. Я пытаюсь использовать гравитационные формы в качестве редактора, поэтому для каждого продукта отображается и заполняется одна гравитационная форма. Однако я не уверен, как обращаться с именованием функции, чтобы она не была повторно заявлена ​​для каждого продукта.

global $current_user; new WP_Query( array( 'author' => $current_user->ID, 'post_type' => 'product' ) ); while ( have_posts() ) { the_post(); add_filter('gfrom_pre_render_7', 'populate_each_product'); function populate_each_product ($form){ foreach($form["fields"] as &$field){ if($field["id"] == 1){ $field["defaultValue"] = get_post_meta($post->ID, '_virtual', true); } } return $form; } } wp_reset_query(); ?> 

Есть ли способ добавить счетчик или другую переменную к имени функции? Итак, по линии populate_each_product. $post->ID () или что-то в этом роде? Я немного оглянулся, но не нашел ссылки на использование функций внутри циклов, поэтому я волнуюсь, что я пытаюсь сделать, невозможно

Solutions Collecting From Web of "Наличие функции внутри цикла"

Прежде чем продолжить, прочитайте следующее:

http://www.slideshare.net/andrewnacin/you-dont-know-query-wordcamp-netherlands-2012

Это основной разработчик WordPress, и вы должны подумать, что это требует чтения. Вы никогда не должны использовать query_posts , и важно понять, как правильно использовать циклы. В этой презентации будут продемонстрированы лучшие практики, способы и способы их использования.

Я вижу подход, который вы сделали, что вы пытаетесь сделать:

 foreach post that's of type product that belongs to me add a function that fills in the default value for that post 

К сожалению, этот фильтр запускается для всех сообщений, а не для отдельных сообщений. Кроме того, ваш подход использует именованную функцию, если она была javascript, и вы использовали lambdas, и это был фильтр для каждого сообщения, например, «gfrom_pre_render _». $ Post-> ID он мог бы работать, но этот фильтр не существует, и вы «Я не использую лямбды.

Поэтому вместо этого добавьте свою функцию в фильтр, и она будет выполнена во всех формах. Затем отфильтруйте, чтобы это происходило только на тех, которые вы хотите:

 add_filter('gfrom_pre_render_7', 'populate_each_product'); function populate_each_product ($form){ global $post, $current_user; if($post->post_type == 'product' && $post->post_author == $current_user->ID){ foreach($form["fields"] as &$field){ if($field["id"] == 1){ $field["defaultValue"] = get_post_meta($post->ID, '_virtual', true); } } } return $form; } 

Также вы правильно выполнили бы запрос:

 $q = new WP_Query( array( 'author' => $current_user->ID, 'post_type' => 'product' ) ); if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); } wp_reset_postdata(); } 

Не добавляйте фильтр внутри цикла. Поместите код в functions.php и используйте get_posts для получения продуктов и заполнения формы.