отображать статьи на основе даты их события, а не даты их публикации - PullRequest
0 голосов
/ 26 февраля 2020

Wordpress: Здравствуйте, я хотел бы отображать статьи в зависимости от даты их проведения (например, семинар, стажировка, вебинар ...), а не от даты их публикации. Я могу отображать статьи по дате их публикации, но не по их событию. Я уточняю, что я должен делать это с помощью шорткода, а не из плагина ... Заранее спасибо за вашу помощь. Я чистый новичок в WP и PHP ... Вот код, который я попробовал:

function display_cpt($atts, $content) {
    $atts = shortcode_atts(array(
        'numberposts' => 3,
        'orderby' => 'date',
        'order'=> 'DESC',
        'post_type' => 'page',
        'page' => 'agenda'

    ), $atts);    
    $posts = get_posts($args);


    $html = '<ul>';   
    foreach($posts as $post) {        
        $html .= '<li><a href="'.get_permalink($post).'">'.$post->post_title.'</a></li>';
    }    
    $html .= '</ul>';

    wp_reset_postdata();
    return $html;
}

add_shortcode('article_evenement', 'display_cpt');

?>

Спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Вот наконец то, что потребовалось для отображения моих статей в соответствии с датами событий. Я поместил этот код здесь, если он может помочь кому-то в будущем ... Спасибо за вашу помощь, вы хорошо отослали меня.

function display_cpt($atts) {
$atts = array(
    'numberposts' => 3, 
    'post_type' => 'cpt_agenda', // de la page custom post type agenda (que l'on retrouve dans l'url du back office)
    'meta_key'  => '_date_event', // travailler sur les dates d'évènements affichées _date_event dans le code et Date event dans le BO
    'orderby'   => 'meta_value', // ordonner par la valeur du champ _date_event (ici des dates)
    'order'     => 'ASC', 
    'meta_query' => array( 
        'relation' => 'AND', 
        array(
            'key' => '_date_event', // on souhaite comparer la clé de champ personnalisée _date_event
            'value'   => '', // et l'afficher si sa valeur est différente (compare !=) de vide (value '') 
            'compare' => '!=' // 
         ),                             // ET
        array(
            'key'     => '_old_event', // dont la valeur de l'évènement passé est égale à false, donc que notre évènement n'est pas
            'value'   => false, // encore passé.
            'compare' => '='  
        ),              
    ),
);   

$posts = get_posts($atts); 

$html = '<ul>';   
foreach($posts as $post) { 
    $html .= '<li><a href="'.get_permalink($post).'">'.$post->post_title.'</a></li>'; 
}                                                                                    
$html .= '</ul>';

return $html;

}

add_shortcode ('article_evenement', ' display_cpt ');

?>

0 голосов
/ 26 февраля 2020

Вы должны предоставить дополнительную информацию, например, если дата события является мета-блоком

Если предположить, что дата события - это пользовательский meta_box или custom_field, ваш код должен выглядеть следующим образом:

function display_cpt($atts, $content) {
$atts = shortcode_atts(array(
    'numberposts' => 3,
    'meta_key' => 'event_date',
    'orderby' => 'meta_value',
    'order' => 'DESC'
    'post_type' => 'page',
    'page' => 'agenda'

), $atts);    
$posts = get_posts($args);


$html = '<ul>';   
foreach($posts as $post) {        
    $html .= '<li><a href="'.get_permalink($post).'">'.$post->post_title.'</a></li>';
}    
$html .= '</ul>';

wp_reset_postdata();
return $html;
}

add_shortcode('article_evenement', 'display_cpt');

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...