Intereting Posts
Установите статическую страницу в качестве главной страницы по умолчанию на вновь созданных сайтах в многопользовательском режиме Internet Explorer открывает ссылки на .msi-файлы как текст на новой вкладке Плагины скачать и установить отлично, обновление WordPress не удается Проверить действительную электронную почту после бездействия пользователя? Предварительный просмотр в Facebook Open Graph Object Debugger Перенаправление на страницу после входа (с переменной) За и против типов сообщений против нескольких блогов могу ли я заказать по одному настраиваемому полю и meta_query другой в том же запросе Функция многократного перезаписи / перезаписи для языков Видеокод – автовоспроизведение всех видеороликов Можно ли встраивать контент в WordPress? Перенаправить старые .html URL-адреса на новую установку в подпапку Виджет: пользовательский тип публикации Post Post Dropdown на стороне администратора Как создать динамическое выпадающее меню на странице архива / срока по терминологии Meta? Неустранимая ошибка: я получил «Неизвестно: не удается использовать буферизацию вывода в обработчиках отображения буферизации вывода в Unknown on line 0» Error

не может захватывать метатеги из расширенного класса Walker_Category должным образом

Попытка показать некоторые метаданные сообщения в расширенном классе Walker_Category. Я очень неопытен с объектно-ориентированным дизайном, поэтому мне очень сложно решить эту проблему

Я по существу пытаюсь проверить поля категорий, которые пользователь уже ввел, если они могут редактировать сообщение с сохраненными данными

вот код в расширенном классе:

<?php class MyCategoryWalker extends Walker_Category{ public $post_cb; //pass through the saved checkbox choices function __construct($custom_meta){ $this->post_cb = $custom_meta; } //get the array of checkbox choices and convert it into a simple string format function get_cat_rp_list(){ $the_cat_list; foreach($this->post_cb as $cat_list){ $the_cat_list .= $cat_list.', '; } $the_cat_list = rtrim($the_cat_list, ','); return $the_cat_list; } //actually builds the checkbox list public function start_el(&$output, $term, $depth, $args){ echo self::get_cat_rp_list(); $args = wp_parse_args(array( 'name' => 'my_category_input', 'checked' => array(self::get_cat_rp_list()), //will input the string of checkboxes saved ), $args); extract($args); $checked = checked(in_array($term->term_id, $checked)); ob_start(); ?> <li> <input type="checkbox" <?php print $checked; ?> id="category-<?php print $term->term_id; ?>" name="<?php print $name; ?>[]" value="<?php print $term->term_id; ?>" /> <label for="category-<?php print $term->term_id; ?>"> <?php print esc_attr($term->name); ?> </label> <?php // closing LI is added inside end_el $output .= ob_get_clean(); } } 

так что это было в моем классе. Для целей тестирования я добавил « echo self::get_cat_rp_list(); » в start_el() . На конкретном посту у меня есть, есть только две категории, хранящиеся в сообщении. Однако он выделяет две категории примерно в 30 раз (то же самое количество всех категорий, которые у меня есть на этом сайте)

вот мой код, чтобы показать контрольный список сообщения:

 $custom_meta = get_post_meta($post->ID, '_custom-meta-box', true); $newWalker = new MyCategoryWalker(); wp_list_categories(array( 'walker' => $newWalker, 'name' => 'my_category_input', // name of the input )); 

вот код, который сохраняет / обновляет выбор checbox (который работает):

 function save_pref_meta_box() { global $post; // Get our form field if(isset( $_POST['my_category_input'] )) { $custom = $_POST['my_category_input']; $old_meta = get_post_meta($post->ID, '_custom-meta-box', true); // Update post meta if(!empty($old_meta)){ update_post_meta($post->ID, '_custom-meta-box', $custom); } else { add_post_meta($post->ID, '_custom-meta-box', $custom, true); } } } 

Solutions Collecting From Web of "не может захватывать метатеги из расширенного класса Walker_Category должным образом"