Intereting Posts
Можно ли фильтровать основной цикл, чтобы исключить сообщения из определенной категории? WP_Query Pagination на single-custom.php Сетевой администратор Multisite – ошибка URL / перенаправления поле error-anti-spam было заполнено Портфолио-шаблон не будет показывать элементы Могу ли я настроить таблицу WP по умолчанию Редактор страницы / сообщения с подсветкой синтаксиса Как перенаправить логин Пользователь с Mapped Domiain Primary blog Url к оригинальному URL-адресу субсайта Как отображать только последнюю запись на моей домашней странице, сохраняя при этом правильные плагины? Страница таксономии Перейти к 404 pgae Фильтр the_posts был вызван несколько раз Перенаправить старый домен и сообщения на домашнюю страницу нового домена Показать сообщения из одной категории с эскизом и описанием на последних Простой способ поиска только пользовательских типов сообщений Какой клиент блогов для Windows / Linux имеет лучшую поддержку для поддержки / восстановления ваших сообщений?

Как назначить таксономию по умолчанию на страницах «save_post»?

Я пытаюсь назначить пользовательские таксономии на страницу при добавлении новой кнопки «publish».

Это функция:

function set_default_object_terms( $id, $post ) { if ( 'publish' === $post->post_status ) { log_me ('From inside function: '.__FUNCTION__.', while I pressed the "publish" button. Post-ID: '.$id); $taxonomy_ar = get_terms( 'property-features', '' ); foreach ($taxonomy_ar as $taxonomy_term) { log_me ('Inside the function: '.__FUNCTION__.' and inside the "foreach"-loop for the ID: '.$id.' and Term: '. $taxonomy_term->name . ' and Post-ID :'. $post->ID); wp_set_object_terms( $post->ID, $taxonomy_ar, $taxonomy_term->name, true ); } }} 

и вот крючок:

 add_action( 'save_post', 'set_default_object_terms', 100, 2 ); 

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

 [13-May-12 16:28] be in function while "publish" is pressed with this id: **64** [13-May-12 16:28] In the "foreach" with id: 64 and Term: **Kitchen** and Post-ID :**64** [13-May-12 16:28] In the "foreach" with id: 64 and Term: **Stove** and Post-ID :**64** [13-May-12 16:28] In the "foreach" with id: 64 and Term: **Pets ok** and Post-ID :**64** 

Но он не назначает его. Кто-нибудь знает, где трюк?

Вы используете wp_set_object_terms неправильно, вторым параметром должен быть термин slug или id, а параметр 3 должен быть именем таксономии, поэтому попробуйте:

 function set_default_object_terms( $id, $post ) { if ( 'publish' === $post->post_status ) { log_me ('be in function while "publish" i pressed with this id: '.$id); $taxonomy_ar = get_terms( 'property-features' ); if (count($taxonomy_ar) > 0){ foreach ($taxonomy_ar as $taxonomy_term) { //create an arry with all term ids log_me ('In the "foreach" with id: '.$id.' and Term: '. $taxonomy_term->name . ' and Post-ID :'. $post->ID); $term_ids[] = $taxonomy_term->ID; } wp_set_object_terms($post->ID,$term_ids,'property-features',true); } } } 

и убедитесь, что вы зарегистрировали таксономию для типа страниц, используя register_taxonomy_for_object_type ex:

 register_taxonomy_for_object_type('property-features','page');