Создал фильтр:
add_filter('public_form_rcl',array(&$this,'add_ingred_input'),10);
Создал функцию:
function get_ingredients(){
$postingrs = get_the_terms( $this->post_id, 'ingredients' );
$ingrlist = '';
if ($postingrs) {
$cnt=0;
foreach((array)$postingrs as $ingr){
if(++$cnt>1)$ingrlist .= ',';
$ingrlist .= $ingr->name;
}
}
return $ingrlist;
}
Создал функцию с input:
function add_ingred_input($fls){
if($this->post_type=='recipe')
$fls .= '
Ингредиеты:
(метки вписываются через запятую)
get_ingredients().'">'
. ''
. ''
. '';
return $fls;
}
при посте записи с сайта поле Ингредиеты появилось, но при публикации в "taxonomy=ingredients&post_type=recipe" данные с него не попадают в custom taxonomy Ингредиеты
не подкинете наводку что я делаю не так или что забыл? Спасибо
При публикации пользователем статьи с сайта данные из поле Метки: попадают в Метки записи, я создал по аналогии поле Ингредиенты и custom taxonomy Ингредиенты
При нажатии кнопки Опубликовать, нужно чтобы данные из поля Ингредиенты
попали в Ингредиенты записи
(по аналогии с метками), как включить это поле при POST?
add_filter('public_form_rcl',array(&$this,'add_ingred_input'),10,1);
function add_ingred_input($fls){ if($this->post_type=='recipe') $fls .= '<table> <tr> <td> <label> Ингредиеты: <small> (метки вписываются через запятую) </small> </label> </td><td> <input type="text" name="ingredients" id="new-tag-ingredients" value="'.$this->get_ingredients().'">' . '</td>' . '</tr>' . '</table>'; return $fls; }
function get_ingredients(){ $postingrs = get_the_terms( $this->post_id, 'ingredients' ); $ingrlist = ''; if ($postingrs) { $cnt=0; foreach((array)$postingrs as $ingr){ if(++$cnt>1)$ingrlist .= ','; $ingrlist .= $ingr->name; } } return $ingrlist; }
register_taxonomy('ingredients','recipe',array( 'label' => 'Ингредиенты' ,'hierarchical' => false ,'show_admin_column' => true ,'show_in_nav_menus' => false ,'show_ui' => true ,'show_tagcloud' => true ,'query_var' => true ,'exclude_from_search' => true ,'rewrite' => array('slug' => 'ingredient', 'with_front' => false) ));
данные из поля
<input type="text" name="ingredients" id="new-tag-ingredients">
будут находится внутри $_POST['ingredients'], получите и обработайте эти данные в функции предварительно подключив ее к action "pre_update_postdata_rcl"
Функция получит массив данных публикации перед созданием публикации
, дополните этот массив своей таксономией и верните массив далее на обработку. Массив надо дополнить данными "tax_input"