web-dev-qa-db-fra.com

Afficher la date de publication d'un message à partir de 2112

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?

5
Adnan Khan

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.

3
Brady

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

3
Tom J Nowell

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!)

2
Ipstenu

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') );
2
Ben HartLenn