Создал фильтр:
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"
