高级AJAX页面加载器深度链接问题

时间:2014-04-16 10:05:23

标签: jquery ajax wordpress deep-linking

我为我女朋友的博客制作了单页自定义主题。我安装了高级AJAX页面加载器插件,用于将类别中的博客文章加载到home.php内同一页面上的div中。这很好用。但是,在我将博客文章加载到div中并将博客的URL传递到地址栏后,刷新页面,或者将链接复制并粘贴到新选项卡中会加载打破网站的single.php。我该如何解决这个问题?

以下是相关网站: http://natalija.co.nf

现场版中缺少的是帖子。类别应显示3个指向博客帖子的缩略图链接,点击其中任何一个应该将帖子的内容加载到页面底部的div中。

这是我的single.php代码

<div id="post" class="post-wrap <?php if($ajaxRequest){echo 'ajax';}?>">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">

        <h1><?php the_title(); ?></h1>

        <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>

        <div class="entry">

            <?php the_content(); ?>

            <?php wp_link_pages(array('before' => 'Pages: ', 'next_or_number' => 'number')); ?>

            <?php the_tags( 'Tags: ', ', ', ''); ?>

        </div>

        <?php edit_post_link('Edit this entry','','.'); ?>

    </div>

<?php comments_template(); ?>

<?php endwhile; endif; ?>
</div>

这是我的home.php代码:

<?php get_header(); ?>
<?php
$args = array(
'orderby' => 'id',
'order' => 'ASC',
'hide_empty' => '0',
'exclude' => '1'
);
$categories = get_categories($args);
foreach($categories as $category) {
?>

<section id="<?php echo $category->slug; ?>" data-stellar-background-ratio="0.5">
    <article class="<?php echo $category->slug; ?>" data-stellar-ratio="1.5">
        <h1><?php echo $category->name; ?></h1>
        <div class="wrapper">
            <ul class="slider">

            <?php
                $args = array (
                    'post_status' => 'publish',
                    'category_name' => $category->slug,
                    'nopaging' => true,
                );
                $custom_query = new WP_Query( $args );

                if ( $custom_query->have_posts() ) {
                    while ( $custom_query->have_posts() ) {
                        $custom_query->the_post();

                            // begin your slider loops in here
                            ?>

                                <li class="slide">
                                    <a data-target="main-content" href="<?php echo get_permalink(); ?>">
                                        <?php the_post_thumbnail(); ?>
                                        <div class="bubble">
                                            <h5><?php echo get_the_title(); ?></h5>
                                        </div>
                                    </a>
                                </li>

                <?php } // end $custom_query loop

                } else {
                    // no posts found
                }

                // reset the postdata
                wp_reset_postdata();
            ?>

            </ul>
            <img class="previous" src="wp-content/themes/Natalija/images/arrow-transparent.png" alt="random" data-stellar-ratio="1.7">
            <img class="next" src="wp-content/themes/Natalija/images/arrow-transparent.png" alt="random" data-stellar-ratio="1.7">
        </div>
    </article>
</section>
<?php
} // end $categories loop
?>
    <section id="oblogu" data-stellar-background-ratio="0.5">

    </section>
    <section id="contact" data-stellar-background-ratio="0.5">
        <article class="contact" data-stellar-ratio="1.5">
            <h1 class="contact-h1">KONTAKT</h1>
            <?php echo do_shortcode('[contact-form-7 id="73" title="Bez naslova"]'); ?>
        </article>
    </section>
    <section id="ostalo" data-stellar-background-ratio="0.5">
        <article class="ostalo" data-stellar-ratio="1.5">
            <h1>Ostalo</h1>
        </article>
    </section>
    <div id="main-content">
        <div id="post">

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

所以要非常清楚:刷新或外部链接到单个博客帖子会加载single.php生成的无格式内容,而不是加载整个网站(home.php),其中包含加载在div内的博客帖子的内容页面底部。有没有解决方法,我需要做什么来解决深度链接这个问题。

1 个答案:

答案 0 :(得分:0)

好的,所以我通过将home.php的各个部分分解为单独的php文件来提出解决方案,我将其包含在home.php和single.php中。在home.php的底部,我包含了段id =“main-content”,其中div id = post,在其中我加载了最新的帖子,而在single.php上我将div id =“post”包含在section中ID =“主要内容”。高级AJAX页面加载器正在关注内容是否正确加载到home.php和single.php上的div id =“post”。