YEARS and not only by months of years.
Version: 2.0
Author: Gilles Dumas
Author URI: http://gillesdumas.com
*/
// require_once('debug.php');
$i_want_to_add_years_in_list_filter = true;
if ($i_want_to_add_years_in_list_filter == true) {
add_filter('months_dropdown_results', 'admin_filter_posts_by_years_months_dropdown_results', 10, 2);
add_action('admin_init', 'admin_filter_posts_by_years_init', 10);
}
/**
* Modifier la liste de filtre par date, en ajoutant les années en plus des mois par années.
* Par exemple on a $months = array() avec pour chaque entrée un stdObject avec deux propriétés
* year
* month
* et ici on va rajouter des entrées avec
* year = yyyy
* month = 00
*
* @author Gilles Dumas
* @since 20140501
* @url http://wphooks.info/filters/months_dropdown_results/
*/
function admin_filter_posts_by_years_months_dropdown_results($months, $post_type){
$my_date_filter = array();
foreach ($months as $obj_month) {
if (!isset($my_date_filter[$obj_month->year])) {
$my_date = new stdClass();
$my_date->year = $obj_month->year;
$my_date->month = null;
$my_date_filter[$obj_month->year] = $my_date;
unset($my_date);
}
}
ksort($my_date_filter);
foreach ($my_date_filter as $my_date_filter_item) {
array_unshift($months, $my_date_filter_item);
}
return $months;
}
/**
* Modifier la liste de filtre par date, en ajoutant les années en plus des mois par années.
* par exemple on a $months = array() avec pour chaque entrée un stdObject avec deux propriétés
* year
* month
* et ici on va rajouter des entrées avec
* year = yyyy
* month = 00
*
* @author Gilles Dumas
* @since 20140501
*/
function admin_filter_posts_by_years_init($months){
// // Ceci car si $_GET['m'] vaux 201400, on veut qu'il vaille : 2014
// // (c'est yyyymm pour le filtre de date)
if (isset($_GET['m'])) {
$m = $_GET['m'];
$fin = substr($m, strlen($m)-2, 2);
if ($fin == '00') {
$_GET['m'] = substr($m, 0, strlen($m)-2);
}
}
}
/**
* javascript
* @author Gilles Dumas
* @since 20140501
*/
function gwp_admin_filter_posts_by_years_admin_head() {
if (isset($_GET['m'])) {
$m = $_GET['m'];
if (strlen($m) == 4) {
$m2 = $m . '00';
?>