首页只显示ACF一次,能解决每个帖子显示ACF的问题吗?

时间:2017-12-07 作者:baswijdenesdotcom

我正在创建一个新网站,我的每个博客帖子都有一些ACF。我不希望这篇文章可以点击,所以我希望它只会出现在头版。我的AFC工作得很好,但尽管我有2篇博文,最后一页的AFC是shwon。

有没有简单的解决方法?

我的索引:

<?php get_header(); ?>
<div id="main">
<hr>
<div id="content">
<?php $work_years = get_field(\'work_years\'); ?>
<?php $image = get_field(\'image\'); ?>
<?php $function = get_field(\'function\'); ?>
<?php $certificates = get_field(\'certificates\'); ?>
<?php $website_link = get_field(\'website_link\'); ?>
<?php include \'postinfo.php\';?>
</div>

</div>
<div id="delimiter">
</div>
<?php get_footer(); ?>
以及我的postinfo,其中包括AFC:

<?php echo $work_years; ?><BR>
<img src="<?php echo $image; ?>"><BR>
<?php echo $function; ?><BR>
<?php echo $certificates; ?><BR>
<a href="<?php echo $website_link;?>">Website</a><BR>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<h4>Posted on <?php the_time(\'F jS, Y\') ?></h4>
<p><?php the_content(__(\'(more...)\')); ?></p>
<hr> <?php endwhile; else: ?>
<p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p><?php endif; ?>

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

我认为您的字段仍然需要放在while循环中,否则它只会显示一篇文章的数据。当循环切换到下一篇文章时,它不会再次执行代码ACF字段,因为这些字段当前不在循环中。

因此,请尝试以下操作:

<?php get_header(); ?>
<div id="main">
<hr>
<div id="content">
    <?php
    if ( have_posts() ) {
        while ( have_posts() ) {
            the_post();
    ?>
    <?php $work_years = get_field(\'work_years\'); ?>
    <?php $image = get_field(\'image\'); ?>
    <?php $function = get_field(\'function\'); ?>
    <?php $certificates = get_field(\'certificates\'); ?>
    <?php $website_link = get_field(\'website_link\'); ?>

    <?php include \'postinfo.php\';?>

    <?php 
        }
    }else{
    ?>
      <p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
    <?php
    }
    ?>
</div>

</div>
<div id="delimiter">
</div>
<?php get_footer(); ?>
以及postinfo。php将是:

<?php echo $work_years; ?><br />
<img src="<?php echo $image; ?>"><br />
<?php echo $function; ?><br />
<?php echo $certificates; ?><br />
<a href="<?php echo $website_link;?>">Website</a><br />

<h1><?php the_title(); ?></h1>
<h4>Posted on <?php the_time(\'F jS, Y\') ?></h4>
<p><?php the_content(__(\'(more...)\')); ?></p>
<hr>
顺便说一句,我不明白你为什么引入postinfo文件。php,而不是仅在第一个文件中包含这些代码。然而,我想你的理由是基于你的网站。

结束

相关推荐

FrontPage管理栏消失

我在一个多站点网络上。最近,我的frontpage管理栏消失了,但仍在后端显示。我禁用了所有插件,将主题也更改为210和212,但没有成功。但当我将插件文件夹的名称更改为其他名称时,它开始显示,但当我在不更改插件文件夹名称的情况下停用所有插件时,它不会显示。我认为网络禁用所有插件和/或更改插件文件夹名称是同一回事,所以它应该通过两种方式工作。但管理栏只显示当我将插件文件夹名称更改为其他名称时,而不是通过禁用网络范围内的所有插件。请尽快帮助。

首页只显示ACF一次,能解决每个帖子显示ACF的问题吗? - 小码农CODE - 行之有效找到问题解决它

首页只显示ACF一次,能解决每个帖子显示ACF的问题吗?

时间:2017-12-07 作者:baswijdenesdotcom

我正在创建一个新网站,我的每个博客帖子都有一些ACF。我不希望这篇文章可以点击,所以我希望它只会出现在头版。我的AFC工作得很好,但尽管我有2篇博文,最后一页的AFC是shwon。

有没有简单的解决方法?

我的索引:

<?php get_header(); ?>
<div id="main">
<hr>
<div id="content">
<?php $work_years = get_field(\'work_years\'); ?>
<?php $image = get_field(\'image\'); ?>
<?php $function = get_field(\'function\'); ?>
<?php $certificates = get_field(\'certificates\'); ?>
<?php $website_link = get_field(\'website_link\'); ?>
<?php include \'postinfo.php\';?>
</div>

</div>
<div id="delimiter">
</div>
<?php get_footer(); ?>
以及我的postinfo,其中包括AFC:

<?php echo $work_years; ?><BR>
<img src="<?php echo $image; ?>"><BR>
<?php echo $function; ?><BR>
<?php echo $certificates; ?><BR>
<a href="<?php echo $website_link;?>">Website</a><BR>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<h4>Posted on <?php the_time(\'F jS, Y\') ?></h4>
<p><?php the_content(__(\'(more...)\')); ?></p>
<hr> <?php endwhile; else: ?>
<p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p><?php endif; ?>

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

我认为您的字段仍然需要放在while循环中,否则它只会显示一篇文章的数据。当循环切换到下一篇文章时,它不会再次执行代码ACF字段,因为这些字段当前不在循环中。

因此,请尝试以下操作:

<?php get_header(); ?>
<div id="main">
<hr>
<div id="content">
    <?php
    if ( have_posts() ) {
        while ( have_posts() ) {
            the_post();
    ?>
    <?php $work_years = get_field(\'work_years\'); ?>
    <?php $image = get_field(\'image\'); ?>
    <?php $function = get_field(\'function\'); ?>
    <?php $certificates = get_field(\'certificates\'); ?>
    <?php $website_link = get_field(\'website_link\'); ?>

    <?php include \'postinfo.php\';?>

    <?php 
        }
    }else{
    ?>
      <p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
    <?php
    }
    ?>
</div>

</div>
<div id="delimiter">
</div>
<?php get_footer(); ?>
以及postinfo。php将是:

<?php echo $work_years; ?><br />
<img src="<?php echo $image; ?>"><br />
<?php echo $function; ?><br />
<?php echo $certificates; ?><br />
<a href="<?php echo $website_link;?>">Website</a><br />

<h1><?php the_title(); ?></h1>
<h4>Posted on <?php the_time(\'F jS, Y\') ?></h4>
<p><?php the_content(__(\'(more...)\')); ?></p>
<hr>
顺便说一句,我不明白你为什么引入postinfo文件。php,而不是仅在第一个文件中包含这些代码。然而,我想你的理由是基于你的网站。

相关推荐

如何使用index.php在FrontPage上显示插件功能(内容)

稍微高级的Noob警报:{抱歉}。我正在设计一个WordPress网站{尚未激活}。我有一个插件[feelbox],但目前它只显示在单个贴子页面上。插件设置中没有在frontpage[index.php]上显示它的选项。这里是主要的插件文件-feelbox。php太长,无法在此处发布。以下是第一部分:> if (!$options) { feelbox_add_default_options(); } else { if ($optio