我正在使用ACF插件来定制帖子类型,而且我对使用它还相当陌生。我有一个名为“app\\u url”的字段,这是一个url,我需要将其作为链接包含在标题中。php文件,所以它在所有页面上,自定义帖子类型称为“slider”。如果我只是使用
<a><?php get_field(\'app_url\'); ?></>
它不起作用。我也试过了
<?php $args = array( \'post_type\' => \'slider\');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
<a><?php get_field(\'app_url\'); ?></>
endwhile; ?>
这给了我一个空白页。我对循环的概念相当陌生,我想知道如果页面中有另一个循环,是否可以在标题中有一个循环。php内容,也许这就是为什么它不起作用的原因。
最合适的回答,由SO网友:Johansson 整理而成
我在这里观察到三个问题。
1-您的锚没有href
属性
如您所述
app_url
字段是URL,应在
href
锚的属性。所以,你的锚应该是这样的:
<a href="<?php echo esc_url( get_field( \'app_url\' ) ); ?>">My Link</a>
注意,我还通过使用
esc_url()
函数,以消除无效字符。
2-Theget_field()
函数接受post ID。
的第二个参数
get_field()
函数接受post ID。因此,让我们将其传递给循环中的函数:
<?php
$args = array( \'post_type\' => \'slider\');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) :
$loop->the_post(); ?>
<a href="<?php echo esc_url( get_field( \'app_url\', get_the_ID() ) ); ?>">
<?php the_title(); ?>
</a><?php
endwhile;
?>
你忘了使用PHP标签请注意,在循环中的锚点周围没有打开和关闭PHP标签
<?php
和
?>
标签),并且缺少
a
在您的结束语中
</a>
标签
SO网友:Developer.Sumit
You can also try this coding to fetch the post-type module according to Ascending(ASC) or Descending(DESC):-
<?php
$args=array(
\'post_type\' => \'slider\',
\'post_status\' => \'publish\',
\'order\' => \'ASC\',
\'posts_per_page\' => -1
);
$myposts = null;
$myposts = new WP_Query($args);
if( $myposts->have_posts() ) {
$i=0;
while ($myposts->have_posts()) : $myposts->the_post();
$i=$i+1;
?>
<a href="<?php echo get_field(\'app_url\'); ?>">link</a>
<!-- or -->
<a href="<?php echo esc_url( get_field( \'app_url\' ) ); ?>"> link</a>
<?php
endwhile;
}
?>