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