WP_Query on Page模板不起作用(Genesis框架)

时间:2015-08-13 作者:tim daniels

我正在尝试将wp\\u查询用作页面模板的一部分。该页面标记了一个分类术语,我正试图获取一个也标记了该分类术语的帖子列表。

我可以从页面上抓取术语本身,没有问题,并将它们用作$args的一部分,它似乎也可以正常工作。

但是,使用WP\\u Query的任何东西,即使使用global$post,也不会返回任何内容,函数中WP\\u Query下面的任何代码都不会执行。

我正在利用Genesis框架,所以这可能与此有关,但我真的很难弄清楚这一点。在短代码中使用WP\\u查询功能良好,为什么不在这里使用?

这是代码

/**
 * Template Name: Car Page
 *
 */

add_action( \'genesis_entry_footer\', \'racelistfunc2\' );

function racelistfunc2() {
   $terms = get_the_terms( $post->ID, \'vehicle\' ) ;
   if ($terms) {
    $terms_slugs = array();
    foreach ( $terms as $term ) {
        $terms_slugs[] = $term->slug;
    }
    $race = $terms_slugs[0];      
   }



    $args = array(
        \'tax_query\' => array(
            array(
        \'taxonomy\' => \'vehicle\',
        \'field\' => \'slug\',
        \'terms\' => $race

    )
)
    );

 echo $race; /* test to see if all functioning ok (it is here) */


       $race_posts = new WP_Query( $args );

   if ($race_posts->have_posts()) {
       while ( $race_posts->have_posts() ) {
           $race_posts->the_post();
    $html .= "<li class=\'racelistnum\'><a href=\'" . get_permalink($post->ID) . "\'>" . get_the_title() . "</a></li>";
    return $html;
      }
   }
      else  {   
      $html .= "<p>no posts lol </p>";
    return $html; 

      }
       wp_reset_postdata();

    echo \'test here\'; /* no code functions here */

     }

    genesis();

1 个回复
最合适的回答,由SO网友:Domain 整理而成

这里可以看到几个问题-

您已经在模板文件中钩住了一个函数,而这样的代码应该放进去functions.php 或者您可以直接将此函数的代码放入模板中$post 此函数内部return 声明应该被删除,并且公正echo $html; 应放置在wp_reset_postdata() 在当前代码中

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post

WP_Query on Page模板不起作用(Genesis框架) - 小码农CODE - 行之有效找到问题解决它

WP_Query on Page模板不起作用(Genesis框架)

时间:2015-08-13 作者:tim daniels

我正在尝试将wp\\u查询用作页面模板的一部分。该页面标记了一个分类术语,我正试图获取一个也标记了该分类术语的帖子列表。

我可以从页面上抓取术语本身,没有问题,并将它们用作$args的一部分,它似乎也可以正常工作。

但是,使用WP\\u Query的任何东西,即使使用global$post,也不会返回任何内容,函数中WP\\u Query下面的任何代码都不会执行。

我正在利用Genesis框架,所以这可能与此有关,但我真的很难弄清楚这一点。在短代码中使用WP\\u查询功能良好,为什么不在这里使用?

这是代码

/**
 * Template Name: Car Page
 *
 */

add_action( \'genesis_entry_footer\', \'racelistfunc2\' );

function racelistfunc2() {
   $terms = get_the_terms( $post->ID, \'vehicle\' ) ;
   if ($terms) {
    $terms_slugs = array();
    foreach ( $terms as $term ) {
        $terms_slugs[] = $term->slug;
    }
    $race = $terms_slugs[0];      
   }



    $args = array(
        \'tax_query\' => array(
            array(
        \'taxonomy\' => \'vehicle\',
        \'field\' => \'slug\',
        \'terms\' => $race

    )
)
    );

 echo $race; /* test to see if all functioning ok (it is here) */


       $race_posts = new WP_Query( $args );

   if ($race_posts->have_posts()) {
       while ( $race_posts->have_posts() ) {
           $race_posts->the_post();
    $html .= "<li class=\'racelistnum\'><a href=\'" . get_permalink($post->ID) . "\'>" . get_the_title() . "</a></li>";
    return $html;
      }
   }
      else  {   
      $html .= "<p>no posts lol </p>";
    return $html; 

      }
       wp_reset_postdata();

    echo \'test here\'; /* no code functions here */

     }

    genesis();

1 个回复
最合适的回答,由SO网友:Domain 整理而成

这里可以看到几个问题-

您已经在模板文件中钩住了一个函数,而这样的代码应该放进去functions.php 或者您可以直接将此函数的代码放入模板中$post 此函数内部return 声明应该被删除,并且公正echo $html; 应放置在wp_reset_postdata() 在当前代码中

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post