如何基于高级自定义域(ACF)显示多篇帖子

时间:2014-02-20 作者:Abs

以下代码在我的主题中运行良好:

<!-- Modify query object -->
<?php query_posts(\'showposts=5&post_type=news\'); ?>

<!-- Start the Loop -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <li>
        <a href="<?php the_permalink(); ?>">
            <?php 
                if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
                  the_post_thumbnail();
                } 
            ?>
            <p>
                <?php the_title(); ?>
            </p>
        </a>
    </li>

<!-- Stop The Loop -->
 <?php endwhile; else: ?>
 <p>Sorry, no posts matched your criteria.</p>
 <?php endif; ?>

<!-- Reset the Loop. -->
<?php rewind_posts(); ?>
我需要的职位数量是基于一个自定义字段。

我不知道该怎么做。

我的设置:页面模板:首页。php

主页:设置为“主页”

自定义字段:自定义字段位于“主页”中。我正在为自定义字段使用ACF插件

谢谢

更新:-包含我的设置的屏幕截图

Edit screen of the 'Home' PageSite settings screenCustom field setup using ACF plugin

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

使用ACF插件找到我的问题的答案get_field 功能(http://www.advancedcustomfields.com/resources/functions/get_field/) 要检索自定义字段的值,请将其另存为变量,然后将其用作query\\u post参数的一部分:

<!-- Modify query object -->
<?php
$num_news = get_field("number_news", 523); // number of news items to feature
query_posts(\'showposts=\'.$num_news.\'&post_type=news\'); 
?>
... rest of the code ...

SO网友:kraftner

First: Don\'t use query_posts

接下来,您需要在页面中添加一个名为“posts\\u per\\u page”的自定义字段。

最后把这个放在你的函数中。php,同时从代码中删除query\\u posts调用。

function limit_home_query( $query ) {
    if ( is_home() && $query->is_main_query() ) {
        // Get the custom field ...
        $posts_per_page = intval(get_field(\'number_of_latest_news_items_to_promote_on_homepage\'));
        // then get \'$posts_per_page\' posts...
        $query->set( \'posts_per_page\', $posts_per_page );
        // ...of type \'news\'
        $query->set( \'post_type\', array( \'news\' ) );
        return;
    }
}
add_action( \'pre_get_posts\', \'limit_home_query\', 1 );

结束

相关推荐

Plugins_url函数混合了系统路径和URL

在我的WordPress小部件中,我使用以下代码:wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', dirname( __FILE__ ))); 不幸的是,代码给了我一个无效的URL,它与我的系统路径混合在一起:http://test.dev/wp-content/plugins/C:/projects/wordpress/plugins/assets/js/

如何基于高级自定义域(ACF)显示多篇帖子 - 小码农CODE - 行之有效找到问题解决它

如何基于高级自定义域(ACF)显示多篇帖子

时间:2014-02-20 作者:Abs

以下代码在我的主题中运行良好:

<!-- Modify query object -->
<?php query_posts(\'showposts=5&post_type=news\'); ?>

<!-- Start the Loop -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <li>
        <a href="<?php the_permalink(); ?>">
            <?php 
                if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
                  the_post_thumbnail();
                } 
            ?>
            <p>
                <?php the_title(); ?>
            </p>
        </a>
    </li>

<!-- Stop The Loop -->
 <?php endwhile; else: ?>
 <p>Sorry, no posts matched your criteria.</p>
 <?php endif; ?>

<!-- Reset the Loop. -->
<?php rewind_posts(); ?>
我需要的职位数量是基于一个自定义字段。

我不知道该怎么做。

我的设置:页面模板:首页。php

主页:设置为“主页”

自定义字段:自定义字段位于“主页”中。我正在为自定义字段使用ACF插件

谢谢

更新:-包含我的设置的屏幕截图

Edit screen of the 'Home' PageSite settings screenCustom field setup using ACF plugin

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

使用ACF插件找到我的问题的答案get_field 功能(http://www.advancedcustomfields.com/resources/functions/get_field/) 要检索自定义字段的值,请将其另存为变量,然后将其用作query\\u post参数的一部分:

<!-- Modify query object -->
<?php
$num_news = get_field("number_news", 523); // number of news items to feature
query_posts(\'showposts=\'.$num_news.\'&post_type=news\'); 
?>
... rest of the code ...

SO网友:kraftner

First: Don\'t use query_posts

接下来,您需要在页面中添加一个名为“posts\\u per\\u page”的自定义字段。

最后把这个放在你的函数中。php,同时从代码中删除query\\u posts调用。

function limit_home_query( $query ) {
    if ( is_home() && $query->is_main_query() ) {
        // Get the custom field ...
        $posts_per_page = intval(get_field(\'number_of_latest_news_items_to_promote_on_homepage\'));
        // then get \'$posts_per_page\' posts...
        $query->set( \'posts_per_page\', $posts_per_page );
        // ...of type \'news\'
        $query->set( \'post_type\', array( \'news\' ) );
        return;
    }
}
add_action( \'pre_get_posts\', \'limit_home_query\', 1 );