2012-09-21 46 views
0

我試圖利用插件,使用Ajax來幫助「ajaxify」的WordPress主題。該插件幾乎可以在所有頁面上運行。ajax打破WordPress的WordPress主題javascript

它的工作方式是它會替換您指定的容器div內的內容。在我的例子中是「#newwrap」。這是它的工作,唯一的問題是,重新加載javascript/jquery函數內的內容必須再次調用。

在插件中有一個地方,您可以指出要重新加載的內容。我已經獲得了大部分其他部分的正常工作,但這是一個困擾我的人。

我有一個頁面的主題,利用過濾器與PHP。當我點擊該特定頁面時,頁面看起來像在css等中呈現,除非沒有顯示,並且過濾器不起作用。我看着它背後的螢火蟲和內容只是沒有被顯示。

這裏是鏈接到該網站:http://nex.vyralmedia.com

一旦出現請點擊系列>圖像組合

如果你點擊該網頁上,將加載並只顯示過濾器,但他們不會工作內容將不會顯示。如果你刷新頁面,你會看到它應該看起來像沒有使用AJAX。

這裏是鏈接到WordPress插件:http://wordpress.org/extend/plugins/advanced-ajax-page-loader/

因此,在這種情況下,我在尋找重載的代碼,我應該使用,或只是一些辦法讓部分工作正常。

任何幫助將不勝感激。

這裏是它的模板頁面代碼:

<?php 
/* 
The template that is used to render pages that are targeted by the multiple portfolio behavior of Prime. 
*/ 
get_header(); ?> 
<div id="newwrap"> 
<?php roots_content_before(); ?> 

<?php roots_main_before(); ?> 

<?php 
global $prime_portfolio; 
$portfolio_instance = get_option(PRIME_OPTIONS_KEY); 
$show_filter = false; 
$page = get_queried_object(); 
foreach ($portfolio_instance['portfolio_instance_slider'] as $p) { 
    if(key_exists('portfolio_show_filters', $p) && $p['portfolio_show_filters'][0] == 'Yes' && $p['portfolio_page'] == $page->ID) { 
     $show_filter = true; 
    } 
} 
?> 

<div class="main portfolio-main <?php if($show_filter) { echo 'show-filter'; } else { echo 'no-filter'; }?>" role="main"> 
    <div class="subheader-wrapper"> 
     <div class="container_12"> 
      <div class="grid_12"> 
       <div id="subheader"> 
        <?php 
        global $post; 
        global $prime_frontend; 
        $prime_frontend->prime_title_and_subtitle(); 
        ?> 
        <?php if($show_filter) { ?> 
         <div class="table select-table"> 
          <select class="filter"> 
           <option data-filter="*"><?php echo get_portfolio_all_filter_text(); ?></option> 
          <?php 
           global $prime_portfolio; 
           $prime_portfolio->render_all_filter_list_item(); 
           $page = get_queried_object(); 

           $portfolio_instance = get_option(PRIME_OPTIONS_KEY); 
           $filters = NULL; 
           foreach ($portfolio_instance['portfolio_instance_slider'] as $p) { 
            if ($p['portfolio_page'] == $page->ID) { 
             $filters = isset($p['portfolio_filters']) ? $p['portfolio_filters'] : NULL; 
             break; 
            } 
           } 

           if (!empty($filters)) { 
            foreach ($filters as $fil) { 
             $f = get_term($fil, 'portfolio_filter'); 
             ?> 
             <option data-filter='article[data-filters*="<?php echo $f->slug; ?>"]'> 
              <?php echo $f->name; ?> 
             </option> 
             <?php 

            } 
           } 


           ?> 
          </select> 
         </div> 
        <?php } ?> 
       </div> 
      </div> 
     </div> 
     <div class="clear"></div> 
    </div> 
    <div class="clear"></div> 
    <div class="content-wrapper"> 
     <div class="overlay-divider"></div> 

      <?php if($show_filter) { ?> 
       <div class="filter-wrapper"> 
        <div class="table"> 
         <ul id="filters"> 
          <?php 
          $prime_portfolio->render_all_filter_list_item(); 
          $page = get_queried_object(); 

          $portfolio_instance = get_option(PRIME_OPTIONS_KEY); 
          $filters = NULL; 
          foreach ($portfolio_instance['portfolio_instance_slider'] as $p) { 
           if ($p['portfolio_page'] == $page->ID) { 
            $filters = isset($p['portfolio_filters']) ? $p['portfolio_filters'] : NULL; 
            break; 
           } 
          } 

          if (!empty($filters)) { 
           foreach ($filters as $fil) { 
            $f = get_term($fil, 'portfolio_filter'); 
            $prime_portfolio->render_filter_list_item($f); 
           } 
          } 
          ?> 
         </ul> 
        </div> 
        <div class="overlay-divider bottom"></div> 
        <div class="clear"></div> 
       </div>   
      <?php } ?>  


<?php 
    $page = get_queried_object(); 
    $page_portfolio_properties = $prime_portfolio->get_portfolio_options($page->ID); 

    global $wp_query; 
    $temp_query = $wp_query; 

    $orig_query_vars = $temp_query->query_vars; 

    $args = $prime_portfolio->get_portfolio_item_args_for($page->ID); 

    $posts_per_page = -1; 
    if (isset($page_portfolio_properties['portfolio_posts_per_page'])) { 
     $posts_per_page = $page_portfolio_properties['portfolio_posts_per_page']; 
     $posts_per_page = empty($posts_per_page) ? -1 : intval($posts_per_page); 
    } 
    $args['posts_per_page'] = $posts_per_page; 

    if (!empty($orig_query_vars['paged'])) { 
     $args['paged'] = intval($orig_query_vars['paged']); 
    } 
    else if (!empty($orig_query_vars['page'])) { 
     $args['paged'] = intval($orig_query_vars['page']); 
    } 

    $wp_query = new WP_Query($args); 

    $paginated = $wp_query->max_num_pages > 1 ? 'paginated' : ''; 
    ?> 

    <div class="portfolio-wrapper"> 
     <div class="row-fluid clearfix page-container"> 
      <div class="span12"> 
       <!--PAGE CONTENT--> 
       <div class="prime-page prime-full-width prime-portfolio <?php echo $paginated; ?>"> 
        <div id="masonry-container"> 
         <?php get_template_part('loop', 'portfolio'); ?> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 

    </div> 
    <?php get_footer(); ?> 
</div> 

<?php roots_main_after(); ?> 
<?php roots_content_after(); ?> 
</div> 
+0

首先,您應該更正'reload_code.js'中的js錯誤(不要在.js文件中使用php) – soju

+0

重載代碼中的錯誤直接與沒有正確的信息來加載該頁面有關。如果你嘗試使用ajax重新加載主頁,它可以正常工作,沒有錯誤。 – Joe

回答

0

opacity爲你的文章項目被設置爲0 style.css線4293:

article.item { 
    opacity: 0; 
} 

您應該刪除該規則,或修改js代碼在ajax加載後正確設置不透明度。

+0

這可以使內容顯示,但過濾器不起作用。任何想法如何讓它正常工作。我試圖找到合適的javascript來綁定它,但我沒有任何運氣 – Joe

+0

處理這些過濾器的js代碼在哪裏? – soju

+0

這就是我正在尋找的東西。我剛剛爲上述特定文件添加了模板頁面 – Joe