我正在尝试使用ACF(高级自定义字段)插件转发器字段链接到其他wordpress页面。我在front_page.php中有这段代码:
// Product Grid Repeater
$grid = get_post_meta( get_the_ID(), 'product_grid', true );
// Check if acf/custom field data exists
if( $grid ) {
?>
<div class="product-grid text-center">
<h3>Our Product Lineup</h3>
<ul id="productgrid" class="large-block-grid-4 medium-block-grid-2 small-block-grid-2 effect-2" data-equalizer>
<?php
// loop through the rows of data
for( $i = 0; $i < $grid; $i++ ) { // Custom Count/Loop through rows
// Important: Notice the _preceding and trailing_ underscores
// for $hero_image Set image return value to array and use a variable to test if photon works by using echo $image['url']
$image = (int) get_post_meta( get_the_ID(), 'product_grid_' . $i . '_product_image', true ); // Subfield Name: gallery_slide_image, Type: Image
$name = get_post_meta( get_the_ID(), 'product_grid_' . $i . '_product_name', true ); // Subfield Name: gallery_slide_title, Type: Text
$type = get_post_meta( get_the_ID(), 'product_grid_' . $i . '_product_type', true ); // Subfield Name: gallery_slide_title, Type: Text
$link = esc_html( get_post_meta( get_the_ID(), 'product_grid_' . $i . '_product_link', true ) ); // Subfield Name: gallery_slide_link, Type: Page Link
?>
<li>
<a href="<?php echo $link; ?>">
<div class="grid-outline" data-equalizer-watch>
<div class="product-grid-img-wrap">
<?php echo wp_get_attachment_image( $image, 'full' ); ?>
</div>
<span class="type"><?php echo $type ?></span>
</div>
</a>
</li>
<?php
} // CLOSE for
?>
</ul>
</div>
<?php
} //CLOSE if( $grid )
但是当我点击链接时,他们会转到他们的ID,而不是URL /永久链接。我觉得它与$link = esc_html( get_post_meta( get_the_ID(), 'product_grid_' . $i . '_product_link', true ) ); // Subfield Name: gallery_slide_link, Type: Page Link
部分有关,但我真的不确定要将其更改为什么。
我不知道PHP因为我正在接管一个离开公司的设计师的网站 - 现在我是唯一的设计师!在此先感谢您的帮助!
答案 0 :(得分:0)
问题已经很久了,我来自一些&#34; ACF Page Link&#34;谷歌搜索时寻找不同的问题,只想在这里添加提示。
首先,页面链接字段将页面/帖子ID存储在wp_postmeta表中,因此当您使用本机wp get_post_meta()
函数时,您始终会获得ID,而不是您所期望的URL。如果您使用ACF函数get_field()
,您将获得URL。
因此,解决方案是使用get_field()
或完全使用WordPress-way并使用get_permalink( get_post_meta( 'field_name' ) )
。
答案 1 :(得分:0)
以下是修复:
<?php echo $link[url]; ?>
链接作为数组工作,因为你可以使用它的标题等。我希望它可以帮助你。