本文整理汇总了PHP中Essential_Grid_Base::get_custom_taxonomies_by_post_id方法的典型用法代码示例。如果您正苦于以下问题:PHP Essential_Grid_Base::get_custom_taxonomies_by_post_id方法的具体用法?PHP Essential_Grid_Base::get_custom_taxonomies_by_post_id怎么用?PHP Essential_Grid_Base::get_custom_taxonomies_by_post_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Essential_Grid_Base
的用法示例。
在下文中一共展示了Essential_Grid_Base::get_custom_taxonomies_by_post_id方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: check_for_transient_deletion
/**
* This function deletes transient of certain grids where the Post is included in
* @since: 1.2.0
*/
public static function check_for_transient_deletion($post_id)
{
$base = new Essential_Grid_Base();
$categories = $base->get_custom_taxonomies_by_post_id($post_id);
$tags = get_the_tags($post_id);
$lang = array();
if (Essential_Grid_Wpml::is_wpml_exists()) {
$lang = icl_get_languages();
}
$cat = array();
if (!empty($categories) || !empty($tags)) {
if (!empty($categories)) {
foreach ($categories as $c) {
$cat[$c->taxonomy][$c->term_id] = true;
}
}
if (!empty($tags)) {
foreach ($categories as $c) {
$cat[$c->taxonomy][$c->term_id] = true;
}
}
//get all grids, then check all grids
$grids = Essential_Grid::get_essential_grids();
if (!empty($grids)) {
foreach ($grids as $grid) {
$selected = json_decode($grid->postparams, true);
$post_category = $base->getVar($selected, 'post_category');
$cat_tax = $base->getCatAndTaxData($post_category);
$cats = array();
if (!empty($cat_tax['cats'])) {
$cats = explode(',', $cat_tax['cats']);
}
$taxes = array('post_tag');
if (!empty($cat_tax['tax'])) {
$taxes = explode(',', $cat_tax['tax']);
}
$cont = false;
if (!empty($cats)) {
foreach ($taxes as $tax) {
foreach ($cats as $c) {
if (isset($cat[$tax][$c])) {
//if set, cache of grid needs to be killed
if (!empty($lang)) {
foreach ($lang as $code => $val) {
delete_transient('ess_grid_trans_query_' . $grid->id . $val['language_code']);
delete_transient('ess_grid_trans_full_grid_' . $grid->id . $val['language_code']);
}
} else {
delete_transient('ess_grid_trans_query_' . $grid->id);
delete_transient('ess_grid_trans_full_grid_' . $grid->id);
}
$cont = true;
}
if ($cont == true) {
break;
}
}
if ($cont == true) {
break;
}
}
}
}
}
}
}
示例2: output_filter_by_posts
/**
* Output Filter from post based
* @since 1.0.6
*/
public function output_filter_by_posts()
{
$base = new Essential_Grid_Base();
$nav = new Essential_Grid_Navigation();
$filter_allow = $base->getVar($this->grid_params, 'filter-arrows', 'single');
$filter_start = $grid->getVar($this->grid_params, 'filter-start', '');
$filter_all_text = $base->getVar($this->grid_params, 'filter-all-text', __('Filter - All', EG_TEXTDOMAIN));
$filter_dropdown_text = $base->getVar($this->grid_params, 'filter-dropdown-text', __('Filter Categories', EG_TEXTDOMAIN));
$show_count = $base->getVar($this->grid_params, 'filter-counter', 'off');
$nav->set_filter_text($filter_all_text);
$nav->set_dropdown_text($filter_dropdown_text);
$nav->set_show_count($show_count);
$start_sortby = $base->getVar($this->grid_params, 'sorting-order-by-start', 'none');
$start_sortby_type = $base->getVar($this->grid_params, 'sorting-order-type', 'ASC');
$post_category = $base->getVar($this->grid_postparams, 'post_category');
$post_types = $base->getVar($this->grid_postparams, 'post_types');
$page_ids = explode(',', $base->getVar($this->grid_postparams, 'selected_pages', '-1'));
$cat_relation = $base->getVar($this->grid_postparams, 'category-relation', 'OR');
$additional_query = $base->getVar($this->grid_postparams, 'additional-query', '');
if ($additional_query !== '') {
$additional_query = wp_parse_args($additional_query);
}
$cat_tax = Essential_Grid_Base::getCatAndTaxData($post_category);
$posts = Essential_Grid_Base::getPostsByCategory($this->grid_id, $cat_tax['cats'], $post_types, $cat_tax['tax'], $page_ids, $start_sortby, $start_sortby_type, -1, $additional_query, true, $cat_relation);
$nav_filters = array();
$taxes = array('post_tag');
if (!empty($cat_tax['tax'])) {
$taxes = explode(',', $cat_tax['tax']);
}
if (!empty($cat_tax['cats'])) {
$cats = explode(',', $cat_tax['cats']);
foreach ($cats as $key => $id) {
$cat = get_category($id);
if (is_object($cat)) {
$nav_filters[$id] = array('name' => $cat->cat_name, 'slug' => sanitize_key($cat->slug));
}
foreach ($taxes as $custom_tax) {
$term = get_term_by('id', $id, $custom_tax);
if (is_object($term)) {
$nav_filters[$id] = array('name' => $term->name, 'slug' => sanitize_key($term->slug));
}
}
}
asort($nav_filters);
}
$found_filter = array();
if (!empty($posts) && count($posts) > 0) {
foreach ($posts as $key => $post) {
//check if post should be visible or if its invisible on current grid settings
$is_visible = $this->check_if_visible($post['ID'], $this->grid_id);
if ($is_visible == false) {
continue;
}
// continue if invisible
$filters = array();
//$categories = get_the_category($post['ID']);
$categories = $base->get_custom_taxonomies_by_post_id($post['ID']);
//$tags = wp_get_post_terms($post['ID']);
$tags = get_the_tags($post['ID']);
if (!empty($categories)) {
foreach ($categories as $key => $category) {
$filters[$category->term_id] = array('name' => $category->name, 'slug' => sanitize_key($category->slug));
}
}
if (!empty($tags)) {
foreach ($tags as $key => $taxonomie) {
$filters[$taxonomie->term_id] = array('name' => $taxonomie->name, 'slug' => sanitize_key($taxonomie->slug));
}
}
$found_filter = $found_filter + $filters;
//these are the found filters, only show filter that the posts have
}
}
$remove_filter = array_diff_key($nav_filters, $found_filter);
//check if we have filter that no post has (comes through multilanguage)
if (!empty($remove_filter)) {
foreach ($remove_filter as $key => $rem) {
//we have, so remove them from the filter list before setting the filter list
unset($nav_filters[$key]);
}
}
$nav->set_filter($nav_filters);
//set filters $nav_filters $found_filter
$nav->set_filter_type($filter_allow);
$nav->set_filter_start_select($filter_start);
$nav->output_filter();
}