Sauter la navigation

[Résolu] Initialize a view with posts that match todays date

Ce fil est résolu. Voici une description du problème et la solution proposée.

Problem:
Initialize a view with posts that match todays date

Solution:
You can use view's filter "wpv_filter_query" to filter the posts by current date or today's date by default.

You can find the proposed solution in this case with the following reply:
https://toolset.com/forums/topic/initialize-a-view-with-posts-that-match-todays-date/#post-2296447

Relevant Documentation:
- https://toolset.com/documentation/programmer-reference/views-filters/#wpv_filter_query

This support ticket is created Il y a 2 années et 11 mois. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 10:00 – 13:00 10:00 – 13:00 10:00 – 13:00 10:00 – 13:00 10:00 – 13:00 -
- 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 -

Supporter timezone: Asia/Kolkata (GMT+05:30)

Ce sujet contient 3 réponses, a 2 voix.

Dernière mise à jour par Simon Il y a 2 années et 11 mois.

Assisté par: Minesh.

Auteur
Publications
#2293925
toolset_views_today.png

Initialize a view with posts that match todays date with the ability to change the search criteria (date picker) to another day in the future.

The view however shows all posts from today and forward when first visiting the page.
After selecting another date the view only shows the selected posts with the matching date which is correct.

How can I initalize a view that match only today() on the first visit and then be able to select another date in the future?

URL: cnema.se/startsida-test-privat-bishop/

#2294259

Minesh
Supporter

Les langues: Anglais (English )

Fuseau horaire: Asia/Kolkata (GMT+05:30)

Hello. Thank you for contacting the Toolset support.

To display the posts based on current date by default, you will have to use the view's filter hook: wpv_filter_query.

When you say you want to display posts from today's date by default, do you mean that you want display posts having date grater than equal to current time and before the end of date hour 12:59:59?
- If yes, can you please share problem URL and admin access details.

*** Please make a FULL BACKUP of your database and website.***
I would also eventually need to request temporary access (WP-Admin and FTP) to your site. Preferably to a test site where the problem has been replicated if possible in order to be of better help and check if some configurations might need to be changed.

I have set the next reply to private which means only you and I have access to it.

#2296447

Minesh
Supporter

Les langues: Anglais (English )

Fuseau horaire: Asia/Kolkata (GMT+05:30)

As I do not have FTP access or even Toolset offers "Custom Code" section where we can add the code snippets but when I try to create code snippet it seems on server there is no rights:
- lien caché

I've installed and activated the "Code Snippet" plug9in and I've added the following view's filter code to the "Code Snippet" plugin's snippet:
=> lien caché

add_filter( 'wpv_filter_query', 'func_filter_custom_date_with_fulldaytime', 99, 3 );
function func_filter_custom_date_with_fulldaytime( $view_args, $settings, $view_id ) {
   
    if ( $view_id == 12888) {
		
		 if (!isset($_REQUEST['search']) ) {
			  
			   $target_field = "wpcf-session_showtypestimestamp"; // change this field slug to your field slug
  
            
            foreach ($view_args['meta_query'] as $key => $value):
                                       if ($value['key'] == $target_field){
                                                              $day_start_time =   $value['value'];
                                                              $day_end_time = strtotime('+1 day', $day_start_time ) - 1;
										    				  
                                                              $filer_index = $key;
										   					
										                      break;
                 						}
            endforeach;
             
  
            if (isset($filer_index)){
				
                  
                $view_args['meta_query'][$filer_index] = array('key' => $target_field, 
                                                                  'value' => array($day_start_time, $day_end_time), 
                                                                  'type' => 'NUMERIC', 
                                                                  'compare' => 'BETWEEN' );
             }       
        }
		
     }
    return $view_args;
}

Can you please confirm you can see today's posts by default:
- lien caché

#2296627

My issue is resolved now. Thank you very much!