Wordpress自定义字段显示文件URL

时间:2014-02-24 21:31:15

标签: php wordpress custom-fields advanced-custom-fields

我有以下代码,需要在我的自定义帖子类型中显示三个名为fact-sheet的内容。

  1. 标题
  2. 摘要(fact_sheet_summary)
  3. 文件上传网址(fact_sheet_pdf_link)
  4. 我可以让前两个工作,但不知道如何做第三个。 基本上我的输出应该是......

    The Title The Summary paragraph Click here to download as PDF

    我有什么想法可以查询列出所有这些帖子类型的结果?有没有更好的方法来做到这一点而不是我下面的内容?主要问题是,我无法获取上传文件的URL。

    <?php
    
    $posts = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'fact-sheet',
    'order' => 'ASC',
    ));
    
    if($posts)
    {
    
    
    foreach($posts as $post)
    {
        echo '<span class="fact-sheet-title">' . get_the_title($post->ID) . '</span><br />';
        echo '<p><span class="fact-sheet-summary">' . the_field('fact_sheet_summary') . '</span></p>';
    }
    }
    
    ?>
    

2 个答案:

答案 0 :(得分:1)

你能试试吗?它略微修改了WP Codex手册(不多)

<ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();    

 $args = array(
   'post_type' => 'attachment',
   'post_mime_type' => array('application/pdf'),
   'numberposts' => -1,
   'post_status' => null,
   'post_parent' => $post->ID
  );

  $attachments = get_posts( $args );
     if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
           echo '<li>';
           the_attachment_link( $attachment->ID, true );
           echo '<p>';
           echo apply_filters( 'the_title', $attachment->post_title );
           echo '</p></li>';
          }
     }

 endwhile; endif; ?>
</ul>

如果有效,可能最好根据需要修改工作样本 - 添加自定义字段。只是我的想法: - )

答案 1 :(得分:1)

我认为最好使用query_posts(),因为您可以使用The Loop default structure

对于自定义字段(使用ACF Plugin),您使用的是the_field(),它会自动回显检索到的字段值。另一方面,您可以使用get_field()函数,它只返回字段的值。

你可以这样做:

// Query all posts from 'fact-sheet' post_type
query_posts(array(
    'numberposts' => -1,
    'post_type' => 'fact-sheet',
    'order' => 'ASC',
    // Getting all posts, limitless
    'posts_per_page' => -1,
));

// Loop throught them
while(have_posts()){
    the_post();

    echo '<span class="fact-sheet-title">' . get_the_title() . '</span><br />';
    echo '<p><span class="fact-sheet-summary">' . get_field('fact_sheet_summary') . '</span></p>';
    // Echos the link to PDF Download
    echo '<p><a href="'. get_field('fact_sheet_pdf_link') .'" target="_blank">Click here to download as PDF</a></p>';

}

// Once you're done, you reset the Default WP Query
wp_reset_query();

如果您可能需要有关wp_reset_query()check this out的进一步说明。