PHP 高级自定义字段
Posted
技术标签:
【中文标题】PHP 高级自定义字段【英文标题】:PHP advanced custom fields 【发布时间】:2013-07-14 23:38:57 【问题描述】:这可能是一个基本问题,但我似乎找不到正确的解决方案。
在高级自定义字段中我设置了一个字段组 CD,在 CD 中有三个字段,标题、信息、作者和组显示,如果类别 = CD
因此,当我使用 CD 类别发布新帖子时,我会填写这三个字段。 CD 类别中有 10 个帖子。
现在我遇到的问题是在页面上显示所有帖子。
这是我试过的代码
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php query_posts( array( 'posts_per_page' => -1, 'cat' => '6', 'CD' => ( get_query_var('CD') ? get_query_var('CD') : 1 ), ));
if (have_posts())
while (have_posts())
the_post();
get_post_meta();
// end while
// end if
?>
<?php endwhile; endif; ?>
这返回了一个错误Warning: Missing argument 1 for get_post_meta(), called in /Volumes/shared/Digital/_Websites/londonconchord/wp-content/themes/conchord/t-disc.php on line 25 and defined in /Volumes/shared/Digital/_Websites/londonconchord/wp-includes/post.php on line 1792
我尝试了不同的尝试
<p><?php query_posts( 'cat=6' );
the_field('title');
the_field('info');
the_field('author'); ?></p>
我在这里打印一些信息时比较幸运,但是只有该类别中的第 1 个帖子并且它一直在重复,我想要所有 10 个帖子并且没有重复。
我认为我只是在寻找那些最终的指针
谢谢
【问题讨论】:
【参考方案1】:我的解决方案(最后,)希望这可以帮助其他人
<?php
$args = array('cat' => 6);
$category_posts = new WP_Query($args);
if($category_posts->have_posts()) :
while($category_posts->have_posts()) :
$category_posts->the_post();
?>
<div class="article">
<div class="articleinfo">
<h3><?php the_field('title'); ?></h3>
<?php the_field('author'); ?>
<?php the_field('label'); ?>
</div>
<img src="<?php the_field('cd_image'); ?>" />
</div>
<?php
endwhile;
else:
?>
Oops, there are no posts.
<?php
endif;
?>
遍历所有帖子并提取我需要的 ACF
【讨论】:
【参考方案2】:似乎get_post_meta()
有变量,而您却缺少它。
就像预期的 get_post_meta($var)
一样,但您只是打电话给 get_post_meta()
。希望对您有所帮助。
【讨论】:
【参考方案3】:我不认为你没有正确查询。
你需要抢占场地
get_field('YOUR FIELD NAME') );
然后循环并获取您需要的子字段。
the_sub_field('YOUR SUB FIELD');
例子
<?php if(get_field('YOUR FIELD NAME')): while(has_sub_field('YOUR FIELD NAME')): ?>
<img class="logo" src="<?php the_sub_field('logo'); ?>" />
<h1><?php the_sub_field('title'); ?></h1>
<?php endwhile; endif; ?>
举个例子。希望这会有所帮助......让我知道。
【讨论】:
【参考方案4】:我无法让上述解决方案发挥作用,但感谢各位的意见,
这是我目前的解决方案
<h3><?php the_field('title', 475); ?></h3>
<?php the_field('info', 475); ?>
<?php the_field('author', 475); ?>
</div>
<img src="<?php the_field('cd_image', 475); ?>" />
然后我只是重复了一遍,并将 id 从 475 更改为其他,现在我拉入了所有帖子,但缺点是我必须再次在此代码中添加任何新帖子。
我可以使用 wp 查询将这 4 个字段提取到一个变量中,然后打印该变量,然后循环遍历类别直到打印所有帖子?
【讨论】:
以上是关于PHP 高级自定义字段的主要内容,如果未能解决你的问题,请参考以下文章