2010-07-24 5 views
0

j'ai une mise en page avec le code suivant:Charger les messages WordPress en utilisant jQuery

<?PHP 

     get_header(); 

    ?> 

    <div class="wrapper clearfix"> 

     <div class="clearfix"> 

     <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

      <div class="page-header"> 

       <h2 class="section_title"><?php the_title(); ?></h2> 

      </div> 

      <?php endwhile; endif; ?> 

      <div class="filter"> 
       <p>Filter :</p> 
       <?php 
       //list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin) 

       $taxonomy  = 'portfolio_tag'; 
       $orderby  = 'name'; 
       $show_count = 0;  // 1 for yes, 0 for no 
       $pad_counts = 0;  // 1 for yes, 0 for no 
       $hierarchical = 1;  // 1 for yes, 0 for no 
       $title  = ''; 
       $hide_empty = 0; 

       $args = array(
        'taxonomy'  => $taxonomy, 
        'orderby'  => $orderby, 
        'show_count' => $show_count, 
        'pad_counts' => $pad_counts, 
        'hierarchical' => $hierarchical, 
        'title_li'  => $title, 
        'hide_empty' => $hide_empty 
       ); 
       ?> 

       <ul> 
       <li class="current-cat"><a title="View all posts" href="<?php bloginfo('url'); ?>/portfolio/">All</a></li> 
       <?php wp_list_categories($args); ?> 
       </ul> 

      </div>    

     </div> 

     <div class="description"> 

     <?php the_content(); ?> 

     </div> 

     <div class="portfolio-archives"> 

      <ul class="portfolio-list clearfix"> 

      <?php $temp = $wp_query; $wp_query= null; ?>   

      <?php $wp_query = new WP_Query(array('post_type' => 'portfolio', 'posts_per_page' => 999, 'paged' => $paged)); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 

      <?php //$portfolio_query = new WP_Query(array('post_type' => 'portfolio')); while ($portfolio_query->have_posts()) : $portfolio_query->the_post(); 

      ?>  

       <?PHP 

        if (!($nr++ % 4)) 
        { 
         echo '<li class="first">'; 
        } 
        else 
        { 
         echo '<li>'; 
        } 
       ?> 

       <?php 
       if (has_post_thumbnail()) { ?> 

        <a title="<?php the_title(); ?>" rel="bookmark" href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a> 
        <h3><a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h3> 
        <?php echo get_the_term_list($post->ID, 'portfolio_tag', '<p class="taxonomy">', ', ', '</p>'); ?> 

       <?php 

       } else { 

       ?> 

        <a title="<?php the_title(); ?>" rel="bookmark" href="<?php the_permalink() ?>"><img src="http://dummyimage.com/600x400/ccc/fff&text=x" /></a> 
        <h3><a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h3> 
        <?php echo get_the_term_list($post->ID, 'portfolio_tag', '<p class="taxonomy">', ', ', '</p>'); ?> 

       <?php } ?> 

       </li> 

      <?php endwhile; ?> 

      </ul> 

     </div> 
     <!-- END div.portfolio-archives --> 


     <?php if(function_exists('wp_pagenavi')) 
     { 
      wp_pagenavi(); 
     } 
     ?> 

     <div class="navigation"> 
      <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div> 
      <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div> 
     </div> 

     <?php $wp_query = null; $wp_query = $temp; ?> 


    </div> 
    <!-- END div.clearfix --> 

    <?PHP 

     get_footer(); 

    ?> 

Il crache au fond tous mes messages pour un type de poste personnalisé appelé portefeuille. J'ai créé une taxonomie personnalisée pour ce type qui me permet d'étiqueter les messages avec des filtres. Un utilisateur peut cliquer sur un lien en haut à droite et voir uniquement les publications de ce filtre. Ce que je voudrais faire est de faire en sorte que l'utilisation de jQuery se charge dans ces messages au lieu d'amener l'utilisateur à la page (et s'ils n'ont pas de javascript, il suffit de charger la page normalement).

Ceci est un exemple de ce que je veux travailler: http://adamfoster.me.uk (CE N'EST PAS MON SITE WEB) si vous cliquez sur les liens (qui sont des taxonomies personnalisées) sur la droite, il change les messages ci-dessus.

Quelqu'un peut-il aider?

+0

Des mises à jour? Vraiment chercher à obtenir ce travail dès que possible pour un projet client. Merci. – Cameron

Répondre

0

assez simple. Vous devrez faire plusieurs choses.

1) Placer le support pour l'endroit où vous voulez mettre à jour les choses. Pour cet exemple, appelons-le "placeHolder" 2) méthode jQuery post pour déclencher à chaque fois que l'on clique sur un filtre. Donc, si vous avez stylé vos filtres avec un style particulier, disons "classFilter" alors un exemple serait: $ ('. ClassFilter'). Click (function() {.... 3) PHP pour traiter vos messages . Il suffit de modifier la requête pour filtrer par courrier (par exemple, query_posts ('tag = tag1 + tag2 + tag3');) et renvoyer l'ensemble résultant. Si vous avez choisi de poster comme json, alors un exemple serait, après avoir bouclé vos messages dans une variable (par exemple $ posts ['messages']): return json_encode ($ posts) 4) Et retour à votre méthode post jQuery. ..dans la partie de la fonction (données), assurez-vous que vous définissez votre html "placeHolder" à data.posts

+0

Pouvez-vous poster du code car rien de tout cela n'a de sens. Merci. – Cameron

Questions connexes