Эти функции добавляем например в ads_config.php затем можно использовать в формах.
! Если вы хотите составить какой либо список категорий и организовать в форме ввода выбор данных из этого списка для начала поместите все эти рубрики в категорию контейнер, а id этого контейнера и будет параметр $child_of без него здесь не получится.
Если необходимо добавить выпадающий список для выбора какой нибудь категории
элемент SELECT используем
function ads_category_select:
$child_of – id рубрики-контейнера, если не назначена берется значение ads_basecat
$name – параметр name html элемента SELECT
function ads_category_select($child_of=false,$name = 'post_category[]'){
global $ads_post;
if(!$child_of) {
if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
else $child_of = $_REQUEST['ads_basecat'];
}
$args = array('child_of' =>$child_of, 'hide_empty' => 0,
'hierarchical' => 1, 'name'=>$name,'echo'=>0);
$select_loc = wp_dropdown_categories($args);
return $select_loc = preg_replace('~
Выводит список флажков для выбора :
|
|
|
|
function ads_category_checkbox
function ads_category_checkbox($child_of=false){
global $ads_post;
if(!$child_of) {
if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
else $child_of = $_REQUEST['ads_basecat'];
}
$ads_ganres = get_categories(array('child_of'=>$child_of,'hide_empty'=> 0));
if(!sizeof( $ads_ganres)) return '';
foreach($ads_ganres as $key=>$value){
echo "term_id\" />
";
}
}
Выбор при помощи переключателей INPUT TYPE = radio
за объект в целом | за единицу площади |
function ads_radio_checkbox
function ads_radio_checkbox($child_of=false){
global $ads_post;
if(!$child_of) {
if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
else $child_of = $_REQUEST['ads_basecat'];
}
$ads_ganres = get_categories(array('child_of'=>$child_of,'hide_empty'=> 0));
if(!sizeof( $ads_ganres)) return '';
foreach($ads_ganres as $key=>$value){
if(in_array($value->term_id, $_POST['post_category']) )
echo "term_id\" checked=\"checked\" />
";
else
echo "term_id\" />
";
}
}
И function ads_child_category – проверяет выбрана ли категория из контейнера $parent или нет, если выбранно возращает массив совпаших категорий,
потом можно проверить кол-во. Использовать ее можно когда надо убедится, что пользователь таки выбрал нужную категорию, а в случае с флажочками можно посчитать сколько флажков он выбрал:
function ads_child_category($parent,$childs=''){
if(!$childs) $childs = $_POST['post_category'];
if(!$childs) return false;
$category = get_categories(array('child_of'=>$parent,'hide_empty'=> 0));
if(!sizeof($category)) return false;
$resalt = false;
foreach($category as $cat){
if(in_array($cat->term_id,$childs ))
$resalt[] = $cat->term_id;
}
return $resalt;
}
function ads_category_print($child_of=false, $sp=’, ‘, $link=1) эту функция выводит список категорий присвоенных конкретному объявлению (запсиси) и также эти рубрики должны быть под рубриками контейнера $child_of.
$sp разделитель между рубриками
$link ввиде ссылки или просто название категорий
function ads_category_print($child_of=false, $sp=', ', $link=1){
global $ads_post, $post;
if(!$child_of) {
if($ads_post['ads_basecat']) $child_of = $ads_post['ads_basecat'];
else $child_of = $_REQUEST['ads_basecat'];
}
$ads_ganres = get_categories(array('child_of'=>$child_of,'hide_empty'=> 0,'fields'=>'ids'));
$post_category = get_the_category($post->ID);
if(!sizeof( $ads_ganres)) return '';
foreach($post_category as $key=>$value){
if( in_array($value->term_id,$ads_ganres) ){
if($link) $arr[] =''.$value->name.'';
else $arr[] = $value->name;
}
}
if(sizeof($arr)) return implode($sp, $arr);
else return '';
}