Функции для работы с категориями


Эти функции добавляем например в ads_config.php затем можно использовать в формах.
! Если вы хотите составить какой либо список категорий и организовать в форме ввода выбор данных из этого списка для начала поместите все эти рубрики в категорию контейнер, а id этого контейнера и будет параметр $child_of без него здесь не получится.

Если необходимо добавить выпадающий список для выбора какой нибудь категории
элемент SELECT используем
function ads_category_select:
—–Категория 1Категория 2Категория 3
$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(‘~<select[^>]+>~’,’<option class=»level-0″ value=»»>——</option>’,$select_loc); }

1234567891011 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(‘~<select[^>]+>~’,‘<option class=»level-0″  value=»»>——</option>’,$select_loc);}

Выводит список флажков для выбора :

BBC  Discovery  National Geographic  History Channel

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 «<nobr><input type=»checkbox» id=»chk_$key» name=»post_category[]» value=»$value->term_id» /> <label for=»chk_$key» title=»$value->name» >$value->name</label> </nobr>   «; } }

12345678910111213 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 «<nobr><input type=»checkbox» id=»chk_$key» name=»post_category[]» value=»$value->term_id» />   <label for=»chk_$key» title=»$value->name» >$value->name</label> </nobr>   «;    }}

Выбор при помощи переключателей 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 «<nobr><input type=»radio» id=»chk_$key» name=»post_category[]» value=»$value->term_id» checked=»checked» /> <label for=»chk_$key» title=»$value->name» >$value->name</label> </nobr>   «; else echo «<nobr><input type=»radio» id=»chk_$key» name=»post_category[]» value=»$value->term_id» /> <label for=»chk_$key» title=»$value->name» >$value->name</label> </nobr>   «; } }

1234567891011121314151617 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 «<nobr><input type=»radio» id=»chk_$key» name=»post_category[]» value=»$value->term_id» checked=»checked» />   <label for=»chk_$key» title=»$value->name» >$value->name</label> </nobr>   «;        else            echo «<nobr><input type=»radio» id=»chk_$key» name=»post_category[]» value=»$value->term_id» />   <label for=»chk_$key» title=»$value->name» >$value->name</label> </nobr>   «;    }}

И 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; }

123456789101112 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[] ='<a href=»‘.get_category_link(%20$value->term_id%20).'»>’.$value->name.'</a>’; else $arr[] = $value->name; } } if(sizeof($arr)) return implode($sp, $arr); else return »; }

12345678910111213141516171819 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[] =‘<a href=»‘.get_category_link( $value->term_id ).‘»>’.$value->name.‘</a>’;                 else $arr[] = $value->name;            }        }        if(sizeof($arr))  return implode($sp, $arr);        else return »;}