php Enfold - 添加自定义查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Enfold - 添加自定义查询相关的知识,希望对你有一定的参考价值。
<?php
/*
* Yan&Co Modifications - Add Custom Queries
*
*/
if(!function_exists('avia_custom_query_extension'))
{
function avia_custom_query_extension($query, $params)
{
global $avia_config;
if(!empty($avia_config['avia_custom_query_options']['order']))
{
$query['order'] = $avia_config['avia_custom_query_options']['order'];
}
if(!empty($avia_config['avia_custom_query_options']['orderby']))
{
if($avia_config['avia_custom_query_options']['orderby'] == 'meta_value_evcal_srow') {
// Get today as Unix Timestamp
$_currentdate_unixtimestamp = strtotime( date('d-m-Y') );
$query['orderby'] = 'meta_value';
$query['meta_key'] = 'evcal_srow';
$query['post_count'] = 3;
/*$query['meta_query'] = array( array(
'key' => 'evcal_srow',
'compare' => 'LIKE',
) );*/
// Get all events greater or equals to todays unixtimestamp
$query['meta_query'] = array(
array(
'key' => 'evcal_srow'
),
array(
'key' => 'evcal_srow',
'value' => $_currentdate_unixtimestamp,
'compare' => '>='
)
);
} else {
$query['orderby'] = $avia_config['avia_custom_query_options']['orderby'];
}
}
unset($avia_config['avia_custom_query_options']);
return $query;
}
add_filter('avia_masonry_entries_query', 'avia_custom_query_extension', 10, 2);
add_filter('avia_post_grid_query', 'avia_custom_query_extension', 10, 2);
add_filter('avia_post_slide_query', 'avia_custom_query_extension', 10, 2);
add_filter('avia_blog_post_query', 'avia_custom_query_extension', 10, 2);
add_filter('avf_magazine_entries_query', 'avia_custom_query_extension', 10, 2);
add_filter('avf_template_builder_shortcode_elements','avia_custom_query_options', 10, 1);
function avia_custom_query_options($elements)
{
$allowed_elements = array('av_blog','av_masonry_entries','av_postslider','av_portfolio','av_magazine');
if(isset($_POST['params']['allowed']) && in_array($_POST['params']['allowed'], $allowed_elements))
{
$elements[] = array(
"name" => __("Custom Query Orderby",'avia_framework' ),
"desc" => __("Set a custom query orderby value",'avia_framework' ),
"id" => "orderby",
"type" => "select",
"std" => "",
"subtype" => array(
__('Default Order', 'avia_framework' ) =>'',
__('Title', 'avia_framework' ) =>'title',
__('Random', 'avia_framework' ) =>'rand',
__('Date', 'avia_framework' ) =>'date',
__('Meta: evcal_srow (Used for Events)', 'avia_framework') =>'meta_value_evcal_srow',
__('Author', 'avia_framework' ) =>'author',
__('Name (Post Slug)', 'avia_framework' ) =>'name',
__('Modified', 'avia_framework' ) =>'modified',
__('Comment Count', 'avia_framework' ) =>'comment_count',
__('Page Order', 'avia_framework' ) =>'menu_order')
);
$elements[] = array(
"name" => __("Custom Query Order",'avia_framework' ),
"desc" => __("Set a custom query order",'avia_framework' ),
"id" => "order",
"type" => "select",
"std" => "",
"subtype" => array(
__('Default Order', 'avia_framework' ) =>'',
__('Ascending Order', 'avia_framework' ) =>'ASC',
__('Descending Order', 'avia_framework' ) =>'DESC'));
}
return $elements;
}
add_filter('avf_template_builder_shortcode_meta', 'avia_custom_query_add_query_params_to_config', 10, 4);
function avia_custom_query_add_query_params_to_config($meta, $atts, $content, $shortcodename)
{
global $avia_config;
if(empty($avia_config['avia_custom_query_options'])) $avia_config['avia_custom_query_options'] = array();
if(!empty($atts['order']))
{
$avia_config['avia_custom_query_options']['order'] = $atts['order'];
}
if(!empty($atts['orderby']))
{
$avia_config['avia_custom_query_options']['orderby'] = $atts['orderby'];
}
return $meta;
}
}
以上是关于php Enfold - 添加自定义查询的主要内容,如果未能解决你的问题,请参考以下文章