Forum Replies Created

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • in reply to: Sort Posts by 'ACF' custom field – Date #691413

    This should work. (A modified version of Kriesi add orderby code http://kriesi.at/documentation/enfold/how-to-add-an-orderorderby-option-to-the-blogpost-sliderportfoliomasonry-grid-element/) Perhaps Kriesi can update their code, and or add a note about this to that post.

    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']))
            {
                $query['orderby'] = $avia_config['avia_custom_query_options']['orderby'];
            }
    
            if(!empty($avia_config['avia_custom_query_options']['meta_key']))
            {
                $query['meta_key'] = $avia_config['avia_custom_query_options']['meta_key'];
            }
    
            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',
                        __('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',
                        __('Meta Value',  'avia_framework' ) =>'meta_value',
                        __('Meta Value Number',  'avia_framework' ) =>'meta_value_num'));
                );
    
                $elements[] = array(
                    "name" => __("Custom Query Meta Key",'avia_framework' ),
                    "desc" => __("Set custom meta keys to order by",'avia_framework' ),
                    "id"   => "meta_key",
                    "type" 	=> "select",
                    "std" 	=> "",
                    "subtype" => array(
                        __('None',  'avia_framework' ) =>'',
                        __('Page 1 Order',  'avia_framework' ) =>'your_meta_key_1',
                        __('Page 2 Order',  'avia_framework' ) =>'your_meta_key_2',
                        __('Page 3 Order',  'avia_framework' ) =>'your_meta_key_3'));
    
                $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'];
            }
    
            if(!empty($atts['meta_key']))
            {
                $avia_config['avia_custom_query_options']['meta_key'] = $atts['meta_key'];
            }
    
            return $meta;
        }
    }
    

    Please note the addition of meta_key code in EACH function.
    In the first $element[ ] notice the addition of

    __('Meta Value',  'avia_framework' ) =>'meta_value',
    __('Meta Value Number',  'avia_framework' ) =>'meta_value_num'));
    

    In the second $elements[] code block, change

    __('Page 1 Order',  'avia_framework' ) =>'your_meta_key_1',
    

    To your specific page name, and your specific meta_key. In your case, it would look like htis:

    __('Seminar Datum',  'avia_framework' ) =>'seminar_datum')
    

    You can have as many meta_keys as you want.

    Hope this helps!
    elaine

    • This reply was modified 8 years, 2 months ago by iHuman.
    in reply to: Autorespond not working #650572

    Never mind ;) The autoresponder went to my spam folder.

Viewing 2 posts - 1 through 2 (of 2 total)