ajax用php javascript打破wordpress主题

时间:2012-09-21 13:58:22

标签: php javascript jquery ajax wordpress

我正在尝试使用一个使用ajax来帮助“ajaxify”一个wordpress主题的插件。该插件几乎可以在所有页面上运行。

它的工作方式是它替换您指定的容器div中的内容。在我的例子中,它是“#newwrap”。这是它的工作,唯一的问题是重新加载内容中的javascript / jquery函数必须再次调用。

在插件中,您可以指示要重新加载的内容。我已经让大部分其他部分正常工作,但这个部分却让我感到难过。

我在主题中有一个页面,它利用了php的过滤器。当我点击该特定页面时,页面看起来像是在css等中呈现,除了没有显示和过滤器不起作用。我用firebug查看它后面的html,内容就是没有显示。

以下是该网站的链接: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>

1 个答案:

答案 0 :(得分:0)

{p> opacity您的文章项目在style.css第4293行设置为0:

article.item {
  opacity: 0;
}

你应该删除该规则,或修改你的js代码,以便在加载ajax后正确设置不透明度。