javascript运行后,get_post_meta()无效

时间:2013-11-10 22:24:52

标签: php wordpress

我正在尝试使用get_post_meta()函数通过wordpress中的模板检索数据。如果我把代码放在使用javascript的div上面,这样可以正常工作,但是如果我把这个函数放在java脚本之后它就无法工作。 我的php模板文件如下。 这是使用javascript文件的div(让我们称之为div 1)`

        <div style="width: 100%;margin: 0 auto; clear: both; ">

            <div style="width: 800px">
            <ul class='tabs'>
                <?php $the_query = new WP_Query( 'showposts=3' ); ?>
                <?php
                $i=1;
                while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
                <li><a href='#tab<?php echo $i; ?>'><?php the_title(); ?></a></li>
                <?php $i++; endwhile;?>
            </ul>
           </div>
            <div class="clear"></div>
            <div style="background:#d0d8e0; position:relative; width: 96%; margin: -1% 4% 4% 2%; padding: 40px 0 20px 0; ">
                <?php $the_query = new WP_Query( 'showposts=3' ); ?>
                <?php
                $i=1;
                while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
                <div  id='tab<?php echo $i; ?>'>
                    <div class="tab" >
                        <h4><?php the_title(); ?></h4>
                        <?php the_content(); ?>
                    </div>
                </div>
                <?php $i++; endwhile;?>

            </div>
            <div class="clear"></div>

       `</div></div>

我在此div之后放置的代码从数据库中检索值是(让我们称之为div 2)

<div class="group group-custom" >



            <?php $url = get_post_meta($post->ID,'wpcf-youtube-url', true); ?>

        <div style="float: left">  


   <iframe type="text/html" width="480" height="315"    <?php echo wp_oembed_get( 'http://www.youtube.com/watch?v=' . $url ); ?></iframe>
    </div>

        <div class="video-area">

            <h2><?php echo "" .get_post_meta($post->ID,'wpcf-video-line',TRUE)?></h2>
             <br/>
            <p><?php echo "" .get_post_meta($post->ID,'wpcf-video-text',TRUE)?></p>
            <a class="button" href=""></a></div></div>

如果我在我的php模板中将div 2放在div 1之后,它不起作用但是如果我切换div,它会正常工作。这是我的javascript文件(我没有看到问题)

<script language="JavaScript">
$(function() {
    $('ul.tabs').each(function(){
        // For each set of tabs, we want to keep track of
        // which tab is active and it's associated content
        var $active, $content, $links = $(this).find('a');

        // If the location.hash matches one of the links, use that as the active tab.
        // If no match is found, use the first link as the initial active tab.
        $active = $($links.filter('[href="'+location.hash+'"]')[0] || $links[0]);
        $active.addClass('active');
        $content = $($active.attr('href'));

        // Hide the remaining content
        $links.not($active).each(function () {
            $($(this).attr('href')).hide();
        });

        // Bind the click event handler
        $(this).on('click', 'a', function(e){
            // Make the old tab inactive.
            $active.removeClass('active');
            $content.hide();

            // Update the variables with the new link and content
            $active = $(this);
            $content = $($(this).attr('href'));

            // Make the tab active.
            $active.addClass('active');
            $content.show();

            // Prevent the anchor's default click action
            e.preventDefault();
        });
    });
});

这项工作的实时版本是http://cmi.pixstreammedia.com.s177734.gridserver.com/

1 个答案:

答案 0 :(得分:0)

我发现了问题。在新的wp_query函数结束后,我必须使用<?php wp_reset_query() ?>将$ wp_query和全局发布数据恢复到原始主查询。 http://codex.wordpress.org/Function_Reference/wp_reset_query