在查询POST命令中使用高级自定义字段

时间:2013-12-29 作者:NoDiv_NoClass

我无法在internet或advance custom field网站文档中找到有关此的解决方案。我希望wordpress天才能帮助我。

我使用http://wordpress.org/extend/plugins/advanced-custom-fields/ 主题选项/功能。我想在主页中使用类别名称显示类别帖子。这是我的代码:

<!-- Start Category Posts -->
<div class="boxtype2">
    <div class="boxtitle1"><?php the_field(\'cat_1\'); ?></div>
    <div class="boxposts">
    <?php query_posts(\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'); ?>
    <?php if (have_posts()): while (have_posts()) : the_post(); ?>
        <!-- article -->
        <ul class="boxul">
        <li id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            <br class="clear">
        </li>
        </ul>
        <!-- /article -->
    <?php endwhile; ?>
    <?php else: ?>
        <!-- article -->
        <article>
            <h2><?php _e( \'Sorry, nothing to display.\', \'fileketchup\' ); ?></h2>
        </article>
        <!-- /article -->
    <?php endif; ?>
    <?php wp_reset_query() ?>
    </div>
    <div class="boxfooter"><a href="<?php echo home_url(); ?>/<?php the_field(\'view_cat1\'); ?>">View more</a></div>
</div>
<!-- End Category Posts -->
请检查<?php query_posts(\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'); ?>

在这里,我使用类别名称的高级自定义字段元插入。。但它的显示错误。。。我如何解决这个问题??如果我使用(\'category_name=blog\',\'showposts=5\') 然后它的作品。

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

执行此操作时:

<?php query_posts(\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'); ?>
字符串参数是category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5. 好吧,如果字符串没有触发致命错误的话。

你所拥有的是(假设我没有忘记混乱):

字符串1:\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'

  • 一个未定义的常量:cat\\u 1\\u name是一个不合适的逗号,使函数的第二个参数后面的内容只包含一个参数:,
  • 和字符串2:\'showposts=5\'

    其次,你不在HTML 因此,您根本不需要使用PHP打开和关闭标记,这样做将触发进一步的致命错误。

    第三,你搞混了array 语法具有难读、难编辑和容易出错的查询字符串式语法,这种语法在WordPress中非常流行。

    第四,AFCthe_field echos内容。无论如何,您不能使用它来连接字符串。你需要get_field.

    第五showposts 很长一段时间以来一直被反对。使用posts_per_page.

    应该工作的字符串:

    "category_name=".get_field(\'cat_1_name\')."&posts_per_page=5"\'category_name=\'.get_field(\'cat_1_name\').\'&posts_per_page=5\'

    但不要使用该查询字符串语法,创建一个数组。

    $args = array(
      \'category_name\' => get_field(\'cat_1_name\'),
      \'posts_per_page\' => 5
    );
    
    最后,please don\'t use query_posts.

    应该注意的是,使用此replace the main query 在页面上可以increase page loading times, 在最坏的情况下more than doubling the amount of work needed or more. 虽然易于使用,但该功能prone to confusion and problems 过后有关详细信息,请参阅下面关于注意事项的注释。

    http://codex.wordpress.org/Function_Reference/query_posts (重点矿山)

    SO网友:JMB

    正如s\\u ha\\u dum所说,您的语法是错误的。您应该这样工作:

    \'key\' => \'value\',
    
    尝试将query\\u posts循环修改为:

    收件人:

    $args = array(
        \'category_name\' => \'cat_1_name\',
        \'posts_per_page\' => 5);
    $my_query = new WP_Query( $args );
    // The Loop
    if ( $my_query->have_posts() ) {
        while ( $my_query->have_posts() ) {
                $my_query->the_post(); ?>
        <!-- article -->
        <ul class="boxul">
            <li id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                <br class="clear">
            </li>
        </ul>
        <!-- /article -->
    <?php endwhile;
    } else {
        ?>
        <!-- article -->
            <article>
                <h2><?php _e( \'Sorry, nothing to display.\', \'fileketchup\' ); ?></h2>
            </article>
            <!-- /article -->
        <?php }
        /* Restore original Post Data */
    wp_reset_postdata(); ?>
    
    如果需要类别名称来自自定义字段,可以将其设置为变量,并将该变量作为“category\\u name”的值调用。比如:

    $category = get_field(\'cat_1_name\');
    
    $args = array(
        \'category_name\' => $category,
        \'posts_per_page\' => 5);
    
    EDIT: 我之所以编辑,是因为上面的评论很贴切。您不需要使用query\\u帖子。如果您的WP\\U查询需要更多的$参数,go read up on it!

    结束

    相关推荐

    在查询POST命令中使用高级自定义字段 - 小码农CODE - 行之有效找到问题解决它

    在查询POST命令中使用高级自定义字段

    时间:2013-12-29 作者:NoDiv_NoClass

    我无法在internet或advance custom field网站文档中找到有关此的解决方案。我希望wordpress天才能帮助我。

    我使用http://wordpress.org/extend/plugins/advanced-custom-fields/ 主题选项/功能。我想在主页中使用类别名称显示类别帖子。这是我的代码:

    <!-- Start Category Posts -->
    <div class="boxtype2">
        <div class="boxtitle1"><?php the_field(\'cat_1\'); ?></div>
        <div class="boxposts">
        <?php query_posts(\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'); ?>
        <?php if (have_posts()): while (have_posts()) : the_post(); ?>
            <!-- article -->
            <ul class="boxul">
            <li id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                <br class="clear">
            </li>
            </ul>
            <!-- /article -->
        <?php endwhile; ?>
        <?php else: ?>
            <!-- article -->
            <article>
                <h2><?php _e( \'Sorry, nothing to display.\', \'fileketchup\' ); ?></h2>
            </article>
            <!-- /article -->
        <?php endif; ?>
        <?php wp_reset_query() ?>
        </div>
        <div class="boxfooter"><a href="<?php echo home_url(); ?>/<?php the_field(\'view_cat1\'); ?>">View more</a></div>
    </div>
    <!-- End Category Posts -->
    
    请检查<?php query_posts(\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'); ?>

    在这里,我使用类别名称的高级自定义字段元插入。。但它的显示错误。。。我如何解决这个问题??如果我使用(\'category_name=blog\',\'showposts=5\') 然后它的作品。

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

    执行此操作时:

    <?php query_posts(\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'); ?>
    
    字符串参数是category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5. 好吧,如果字符串没有触发致命错误的话。

    你所拥有的是(假设我没有忘记混乱):

    字符串1:\'category_name=<?php the_field(\'cat_1_name\'); ?>\',\'showposts=5\'

  • 一个未定义的常量:cat\\u 1\\u name是一个不合适的逗号,使函数的第二个参数后面的内容只包含一个参数:,
  • 和字符串2:\'showposts=5\'

    其次,你不在HTML 因此,您根本不需要使用PHP打开和关闭标记,这样做将触发进一步的致命错误。

    第三,你搞混了array 语法具有难读、难编辑和容易出错的查询字符串式语法,这种语法在WordPress中非常流行。

    第四,AFCthe_field echos内容。无论如何,您不能使用它来连接字符串。你需要get_field.

    第五showposts 很长一段时间以来一直被反对。使用posts_per_page.

    应该工作的字符串:

    "category_name=".get_field(\'cat_1_name\')."&posts_per_page=5"\'category_name=\'.get_field(\'cat_1_name\').\'&posts_per_page=5\'

    但不要使用该查询字符串语法,创建一个数组。

    $args = array(
      \'category_name\' => get_field(\'cat_1_name\'),
      \'posts_per_page\' => 5
    );
    
    最后,please don\'t use query_posts.

    应该注意的是,使用此replace the main query 在页面上可以increase page loading times, 在最坏的情况下more than doubling the amount of work needed or more. 虽然易于使用,但该功能prone to confusion and problems 过后有关详细信息,请参阅下面关于注意事项的注释。

    http://codex.wordpress.org/Function_Reference/query_posts (重点矿山)

    SO网友:JMB

    正如s\\u ha\\u dum所说,您的语法是错误的。您应该这样工作:

    \'key\' => \'value\',
    
    尝试将query\\u posts循环修改为:

    收件人:

    $args = array(
        \'category_name\' => \'cat_1_name\',
        \'posts_per_page\' => 5);
    $my_query = new WP_Query( $args );
    // The Loop
    if ( $my_query->have_posts() ) {
        while ( $my_query->have_posts() ) {
                $my_query->the_post(); ?>
        <!-- article -->
        <ul class="boxul">
            <li id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                <br class="clear">
            </li>
        </ul>
        <!-- /article -->
    <?php endwhile;
    } else {
        ?>
        <!-- article -->
            <article>
                <h2><?php _e( \'Sorry, nothing to display.\', \'fileketchup\' ); ?></h2>
            </article>
            <!-- /article -->
        <?php }
        /* Restore original Post Data */
    wp_reset_postdata(); ?>
    
    如果需要类别名称来自自定义字段,可以将其设置为变量,并将该变量作为“category\\u name”的值调用。比如:

    $category = get_field(\'cat_1_name\');
    
    $args = array(
        \'category_name\' => $category,
        \'posts_per_page\' => 5);
    
    EDIT: 我之所以编辑,是因为上面的评论很贴切。您不需要使用query\\u帖子。如果您的WP\\U查询需要更多的$参数,go read up on it!

    相关推荐