0

首先让我说我已经在这个问题上工作了大约 2 周,并且我到处寻找答案。我去过各种论坛、博客、WordPress Codex 以及几乎所有我能找到的地方。我仍然无法让它正常工作。作为最后的手段,我来这里看看是否有人可以帮助我。

我的问题是这个。我正在构建一个免费的 Wordpress 主题,http: //wp-awesome.themeawesome.com 。我会将其提交到 WordPress 主题存储库,并希望将其托管,以便人们可以下载它。要求之一是主题不能产生任何错误。一切正常,除了一个错误之外没有任何错误。当我转到第二页时,我收到以下错误消息:

*注意:未定义的变量:do_not_duplicate in /--/--/--/--/--/--/wp-awesome/index.php 第68行*

正如您在首页上看到的那样,有一个精选的帖子滑块。此滑块将显示标记为“精选”的帖子。我为此特定查询使用以下代码:

    <?php 
            $mytag = mytheme_option( 'featured_tag' );
            $thecount = mytheme_option( 'featured_count' );
            $my_query = new WP_Query("tag=$mytag&showposts=$thecount");
            while ($my_query->have_posts()) : $my_query->the_post();
            $do_not_duplicate[] = $post->ID;
        ?>

// post stuff here

<?php endwhile; ?>

现在显然在主页上,我不希望滑块中显示的帖子在其下方的常规循环中显示在首页上。所以我发现下面的代码似乎很好用:

    <?php 
if (is_home()) { 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts(array(
        'post__not_in' => $do_not_duplicate,
        'paged' => $paged
    )); }
if (have_posts()) : while (have_posts()) : the_post(); ?>

// post stuff

<?php endwhile; ?>

唯一的问题是当您单击底部的另一个页面时,会显示错误:

*注意:未定义的变量:do_not_duplicate in /--/--/--/--/--/--/wp-awesome/index.php 第68行*

我知道错误正在出现,因为当您转到第二页或第三页时,没有定义 do_not_duplicate 参数。任何想法如何解决这一问题?

非常感谢任何帮助,我提前感谢您。

4

1 回答 1

0

简单快速的修复(不是最好的)是在主题的 header.php 文件中声明 $do_not_duplicate 变量,该文件位于:wp-content/themes/YOUR_THEME/header.php。如果它是一个数组,您可能需要声明它的元素。像这样:

<?php
  //  declaration of $do_not_duplicate array
  for ( $i = 0; $i < 100; $i++ ) {
    $do_not_duplicate[$i] = 0;
  };
?>
于 2012-08-25T18:58:55.677 回答