2015-07-28 1 views
0

J'ai créé un type de poteau personnalisé appelé événements. J'ai ensuite créé une page de modèle pour lister tous les événements. J'essaie de les lister dans la boucle de la grille avec les classes 'first' et 'one-third' afin que je puisse utiliser les gensis dans les classes de la grille.Classes de grille Genesis pour page de modèle de type de poteau personnalisé

Cependant, tout ce que j'ai essayé ne place pas la classe 'first' sur le premier élément. J'ai seulement essayé de placer la classe 'un tiers' sur tous les poteaux au lieu

J'ai essayé d'utiliser la forme de boucle de grille plus facile bill erickson http://www.billerickson.net/a-better-and-easier-grid-loop/ mais cela a seulement fonctionné pour tout mais mon type de poteau fait sur commande. Un Alos a essayé une autre méthode que j'ai trouvée.

Mon modèle de page et les méthodes que j'ai essayées sont ci-dessous. Merci pour toute direction que vous pouvez donner car je suis perplexe à ce stade est ci-dessous. grâce

ESSAYE ET MANQUE

function be_archive_post_class($classes) { 
    global $wp_query; 
    if(! $wp_query->is_main_query()) 
     return $classes; 

    if (is_page('events')){ 
     $classes[] = 'one-third'; 
     if(0 == $wp_query->current_post || 0 == $wp_query->current_post % 3) 
     $classes[] = 'first'; 
     return $classes; 
    } 
} 
add_filter('post_class', 'be_archive_post_class'); 

//I also Added the if(is_page('events')){} to the above 

VARIATIONS DE CE JUGÉS AUSSI DANS MA boucle while EVENEMENTS TEMPLATE

$c = 0;  
while (have_posts()) : the_post(); 

    if($c % 3 == 0){ 
     $style = 'one-third'; 
    } 
    else{ 
     $style = 'first'; 
    } 
    $c++; 
} 

<?php post_class($style) ?> 

ÉVÉNEMENTS PAGE TEMPLATE

<?php 
/** 
* Template Name: Events Template 
* Description: Used as a CPT Archive for our Events Custom Post Type 
* 
*/ 

/** Replace the standard loop with our custom loop */ 
// Do the Custom Loop 
remove_action('genesis_loop', 'genesis_do_loop'); 
add_action('genesis_loop', 'ame_custom_loop'); 


//Comparing the end date with the timestamp so that old events don't show 
function ame_custom_loop(){ 
    $meta_quer_args = array(
     'relation' => 'AND', 
     array(
      'key' => 'event-end-date', 
      'value' => time(), 
      'compare' => '>=' 
     ) 
    ); 

    //Define Our Arguments 
    $query_args = array(
     'post_type' => 'event', 
     'posts_per_page' => $instance['number_events'], 
     'post_status' => 'publish', 
     'ignore_sticky_posts' => true, 
     'meta_key' => 'event-start-date', 
     'orderby' => 'meta_key', 
     'order' => 'ASC', 
     'meta_query' => $meta_quer_args 
    ); 

    $upcoming_events = new WP_Query($query_args); 

    while($upcoming_events->have_posts()): $upcoming_events->the_post(); 

     $event_start_date = get_post_meta(get_the_ID(), 'event-start-date', true); 
     $event_end_date = get_post_meta(get_the_ID(), 'event-end-date', true); 
     $event_street_address = get_post_meta(get_the_ID(), 'event-street-address', true); 
     $event_city = get_post_meta(get_the_ID(), 'event-city', true); 
     $event_postal_code = get_post_meta(get_the_ID(), 'event-postal-code', true); 
     $event_venue = get_post_meta(get_the_ID(), 'event-venue', true); 
     $event_start_time = get_post_meta(get_the_ID(), 'event-start-time', true); 
     $event_end_time = get_post_meta(get_the_ID(), 'event-end-time', true); ?> 


     <article id="post-<?php the_ID();?>" <?php post_class() ?> itemscope="" itemtype="http://schema.org/Event"> 
      <header class="entry-header"> 
       <p class="entry-meta"> 
        <time class="entry-time start-time" datetime="<?php echo date('F d, Y', $event_start_date);?>" itemprop="startDate"><?php echo date('F d, Y', $event_start_date); ?></time> 
        <?php 
         if($event_end_date != NULL){ ?> 
          <time class="entry-time end-time" datetime="<?php echo date('F d, Y', $event_end_date);?>" itemprop="endDate"><?php echo date('F d, Y', $event_end_date); ?></time> 
        <?php } 
        ?> 
       </p> 
       <h1 class="entry-title" itemprop="headline"><a href="<?php echo get_the_permalink(); ?>"><?php echo get_the_title() ?></a></h1> 
      </header> 
     </article> 

    <?php endwhile; 
} 
genesis(); 

Répondre

0

Après beaucoup d'essais et d'erreurs et de la recherche que j'ai trouvé la réponse ici avec une légère modification ici sur un wordpress forum

Assurez-vous postez à l'intérieur de la boucle while

$postcount++; 
$new_class = (($postcount % 3) == 1) ? "first one-third" : "one-third"; 

//Then add the actual post structure 
<article <?php post_class($new_class) ?> id="post-<?php the_ID();?>" itemscope="" itemtype="http://schema.org/Event"> 
    //Add whatever else you need in here 
</article> 

espoir qui peut aider quelqu'un.