Je crée donc un site d’information sur l’avenir, 2112 pour être précis (bonjour, critiques). Je voulais afficher la date d'un article à partir de 2112. Mais lorsque j'essaie de le faire depuis le panneau d'administration, il "programme" l'affichage. Je veux vraiment publier le post en ce siècle. Toute aide, les gens?
J'avais le même problème que vous lorsque je m'occupais d'événements et que je voulais montrer des événements futurs.
Voici ce que j'ai codé:
add_action( 'init', 'change_future_posts_to_post_now' );
function change_future_posts_to_post_now() {
remove_action("future_post", '_future_post_hook');
add_action("future_post", 'publish_future_posts_now', 2, 10);
}
function publish_future_posts_now($depreciated, $post) {
wp_publish_post($post);
}
add_filter('posts_where', 'show_future_posts_where', 2, 10);
function show_future_posts_where($where, $that) {
global $wpdb;
if("post" == $that->query_vars['post_type'] && is_archive())
$where = str_replace( "{$wpdb->posts}.post_status = 'publish'", "{$wpdb->posts}.post_status = 'publish' OR {$wpdb->posts}.post_status = 'future'", $where);
return $where;
}
Veuillez voir ici Comment définir un type de message personnalisé pour qu'il affiche les futurs messages visibles où j'avais la même question lorsque je traitais avec un CPT.
Cela pourrait fonctionner:
$date = get_the_date();
$date_unix = strtotime($date);
// now lets add 100 years
$date_unix += (100*365*24*60*60);
$echo date('U',$date_unix);
Le principal problème auquel nous sommes confrontés est qu’il peut y avoir une coupure/un basculement vers 2030 ~ selon votre système. Dans ces cas, imprimez la date du jour, mais sans l’année, puis imprimez manuellement l’année suivante, par exemple:
echo get_the_date('l, F j,').' 2112';
Le problème ici étant que le 1er janvier 2013 deviendra le 1er janvier 2112 et non 2113
Qu'en est-il de faire une taxonomie pour 'année future' et de l'attribuer à 2112 dans vos messages?
Vous pouvez aller plus loin et créer une valeur personnalisée de date secondaire pour toutes vos publications et trier par celle-ci au lieu de la date réelle.
(Aussi? Rush!)
Vous pouvez utiliser un simple champ personnalisé pour ajouter des dates de publication futures.
Si vous ne voyez pas de champs personnalisés dans l'éditeur de publication/page, cliquez sur les options d'écran (en haut à droite de l'écran de l'éditeur) et assurez-vous que "champs personnalisés" est coché.
Maintenant, en regardant la zone des champs personnalisés dans l'éditeur de publication/page, cliquez sur "Entrer nouveau". Pour le champ de texte "Nom", entrez un nom descriptif pour votre champ personnalisé, tel que "futureDate": dans le champ de texte "Valeur", entrez la date à afficher.
Enfin, vous aurez besoin de code dans votre fichier de modèle pour afficher ce que vous avez stocké dans le champ personnalisé. Cela pourrait ressembler à ceci:
if(get_post_meta($post->ID, 'futureDate', true))
{
echo get_post_meta($post->ID, 'futureDate', true);
}
En utilisant cette méthode, vous pouvez également classer vos publications en fonction de cette valeur de champ personnalisé avec une requête telle que celle-ci (non testée):
query_posts( array('meta_key'=>'futureDate', 'orderby'=>'meta_value') );