-1

我正在尝试使用 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>

如果我将 div 2 放在我的 php 模板中的 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/

4

1 回答 1

0

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

于 2013-11-13T10:19:12.597 回答