有点新的PHP,尝试在我的自定义信息框中仅显示上传的pdf的文件名,而不是完整的网址或ID。在网上搜索了两天,并在acf主页上尝试了代码示例。
这是我目前的代码:
<div class="post-content">
<?php the_content(); ?>
<!-- advanced custom fields plugin content -->
<?php
if( function_exists('get_field')) {
if (get_field('product_info_content') OR get_field('product_info_file') OR get_field('product_info_file_2') ) {
echo '<div class="info-box">';
echo '<h1>' . get_field('product_info_title') . '</h1>';
the_field('product_info_content');
echo '<ul>';
echo '<li class="product_info_list_item">';
the_field('product_info_file_1');
echo '</li>';
echo '<li class="product_info_list_item">';
the_field('product_info_file_2');
echo '</li>';
echo '</ul>';
echo '</div>';
}
}
?><!-- end advanced custom field -->
我试图以很少甚至没有运气来激活的东西是回显出product_info_file_1和2文件的名称作为在新窗口中打开的链接。
任何帮助将不胜感激!
答案 0 :(得分:0)
我相信,if
检查并显示您的字段名称不统一。您可以尝试以下代码。这将显示上传文件的链接。
<?php
if( function_exists('get_field')) {
if (get_field('product_info_content') OR get_field('product_info_file_1')
OR get_field('product_info_file_2') ) {
echo '<div class="info-box">';
echo '<h1>' . get_field('product_info_title') . '</h1>';
the_field('product_info_content');
echo '<ul>';
echo '<li class="product_info_list_item">';
$file_1 = get_field('product_info_file_1');
if ( ! empty( $file_1 ) ) {
echo '<a href="' . esc_url( $file_1['url'] ) . '" target="_blank">' . esc_html( $file_1['title'] ) . '</a>';
}
echo '</li>';
echo '<li class="product_info_list_item">';
$file_2 = get_field('product_info_file_2');
if ( ! empty( $file_2 ) ) {
echo '<a href="' . esc_url( $file_2['url'] ) . '" target="_blank">' . esc_html( $file_2['title'] ) . '</a>';
}
echo '</li>';
echo '</ul>';
echo '</div>';
}
}
?><!-- end advanced custom field -->
答案 1 :(得分:0)
同样的问题,但是我使用preg_match()来获取路径中的最后一个单词,这样我就可以获取文件名。
<?PHP
preg_match("/[^\/]+$/",get_field('filename'), $matches);
echo str_replace('-',' ',$matches[0]);
?>