仅显示文件名“高级自定义字段”

时间:2015-05-07 20:39:28

标签: advanced-custom-fields

有点新的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文件的名称作为在新窗口中打开的链接。

任何帮助将不胜感激!

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]);

?>