本文整理汇总了PHP中Essential_Grid_Base::get_related_posts方法的典型用法代码示例。如果您正苦于以下问题:PHP Essential_Grid_Base::get_related_posts方法的具体用法?PHP Essential_Grid_Base::get_related_posts怎么用?PHP Essential_Grid_Base::get_related_posts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Essential_Grid_Base
的用法示例。
在下文中一共展示了Essential_Grid_Base::get_related_posts方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: output_by_posts
/**
* Output by posts
*/
public function output_by_posts($grid_preview = false)
{
global $sitepress;
$post_limit = 99999;
$base = new Essential_Grid_Base();
$navigation_c = new Essential_Grid_Navigation($this->grid_id);
$meta_c = new Essential_Grid_Meta();
$item_skin = new Essential_Grid_Item_Skin();
$item_skin->grid_id = $this->grid_id;
$item_skin->set_grid_type($base->getVar($this->grid_params, 'layout', 'even'));
$item_skin->set_default_image_by_id($base->getVar($this->grid_postparams, 'default-image', 0, 'i'));
$m = new Essential_Grid_Meta();
$skins_html = '';
$skins_css = '';
$filters = array();
$rows_unlimited = $base->getVar($this->grid_params, 'rows-unlimited', 'on');
$load_more = $base->getVar($this->grid_params, 'load-more', 'none');
$load_more_start = $base->getVar($this->grid_params, 'load-more-start', 3, 'i');
if ($rows_unlimited == 'on' && $load_more !== 'none' && $grid_preview == false) {
//grid_preview means disable load more in preview
$post_limit = $load_more_start;
}
$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');
$max_entries = $this->get_maximum_entries($this);
$additional_query = $base->getVar($this->grid_postparams, 'additional-query', '');
if ($additional_query !== '') {
$additional_query = wp_parse_args($additional_query);
}
$cat_tax = array('cats' => '', 'tax' => '');
if ($this->custom_posts !== null) {
//output by specific set posts
$posts = Essential_Grid_Base::get_posts_by_ids($this->custom_posts, $start_sortby, $start_sortby_type);
$cat_tax_obj = Essential_Grid_Base::get_categories_by_posts($posts);
if (!empty($cat_tax_obj)) {
$cat_tax['cats'] = Essential_Grid_Base::translate_categories_to_string($cat_tax_obj);
}
//$cat_tax = Essential_Grid_Base::getCatAndTaxData($post_category); //get cats by posts
} elseif ($this->custom_special !== null) {
//output by some special rule
$max_entries = intval($base->getVar($this->grid_params, 'max-entries', '20'));
if ($max_entries == 0) {
$max_entries = 20;
}
switch ($this->custom_special) {
case 'related':
$posts = Essential_Grid_Base::get_related_posts($max_entries);
break;
case 'popular':
$posts = Essential_Grid_Base::get_popular_posts($max_entries);
break;
case 'latest':
default:
$posts = Essential_Grid_Base::get_latest_posts($max_entries);
break;
}
$cat_tax_obj = Essential_Grid_Base::get_categories_by_posts($posts);
if (!empty($cat_tax_obj)) {
$cat_tax['cats'] = Essential_Grid_Base::translate_categories_to_string($cat_tax_obj);
}
//$cat_tax = Essential_Grid_Base::getCatAndTaxData($post_category); //get cats by posts
} else {
//output with the grid settings from an existing grid
$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, $max_entries, $additional_query, true, $cat_relation);
}
$nav_layout = $base->getVar($this->grid_params, 'navigation-layout', array());
$nav_skin = $base->getVar($this->grid_params, 'navigation-skin', 'minimal-light');
$hover_animation = $base->getVar($this->grid_params, 'hover-animation', 'fade');
$filter_allow = $base->getVar($this->grid_params, 'filter-arrows', 'single');
$filter_start = $base->getVar($this->grid_params, 'filter-start', '');
$nav_type = $base->getVar($this->grid_params, 'nagivation-type', 'internal');
$do_nav = $nav_type == 'internal' ? true : false;
$order_by = explode(',', $base->getVar($this->grid_params, 'sorting-order-by', 'date'));
if (!is_array($order_by)) {
$order_by = array($order_by);
}
$order_by_start = $base->getVar($this->grid_params, 'sorting-order-by-start', 'none');
if (strpos($order_by_start, 'eg-') === 0 || strpos($order_by_start, 'egl-') === 0) {
//add meta at the end for meta sorting
//if essential Meta, replace to meta name. Else -> replace - and _ with space, set each word uppercase
$metas = $m->get_all_meta();
$f = false;
if (!empty($metas)) {
foreach ($metas as $meta) {
if ('eg-' . $meta['handle'] == $order_by_start || 'egl-' . $meta['handle'] == $order_by_start) {
$f = true;
$order_by_start = $meta['name'];
break;
}
}
}
if ($f === false) {
//.........这里部分代码省略.........