获取发布附件URL以填充CPT管理页面列

时间:2020-05-21 作者:Daniel Florian

只是想知道如何获取一篇文章所附文件的url,并将其显示在该CPT的管理页面中。该文件通过名为“grading\\u form”的ACF文件上载字段附加到帖子

我有管理页面列设置(使用我的自定义插件),数据填充在所有列中(同样,使用自定义插件)。

每篇文章都附有PDF格式文件。我想有一个在管理页面有一个PDF文件链接列。

到目前为止,我有以下几点:

function toogee_grading_applications_column( $column, $post_id ) {      
// Grading Form column
  if ( \'grading_form\' === $column ) {
    $gradingForm = wp_get_attachment_url( \'grading_form\' );

    if ( ! $gradingForm ) {
      _e( \'N/A\' );  
    } else {
      echo $gradingForm;
    }
  }
}
add_action( \'manage_grading_applications_posts_custom_column\', \'toogee_grading_applications_column\', 10, 2);
注意:我还有其他专栏都使用上述格式,但我只是为了缩短这篇文章而将它们从这篇文章中删除了

一旦我有了PDF文件附件的URL,我只想在else 语句在该列中具有链接:

echo \'<a href="\'.$gradingForm.\'">Grading Form</a>\';
除非有更好的方法?

感谢您的任何意见

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

这个File field\'s documentation 有一些您可以尝试的选项,但这里有一个示例,如果您的字段Return Value 是数组,您可以在其中使用$gradingForm[\'url\'] 要获取附件URL,请执行以下操作:

$gradingForm = get_field( \'grading_form\', $post_id );
echo $gradingForm ? \'<a href="\' . esc_url( $gradingForm[\'url\'] ) . \'">Grading Form</a>\' : \'N/A\';
以及正确的使用方法wp_get_attachment_url() 通过将附件(post)ID作为以下唯一参数传递:wp_get_attachment_url( 123 ).

在你的情况下,这里有一个不使用get_field():

$att_id = get_post_meta( $post_id, \'grading_form\', true );
$gradingForm_url = wp_get_attachment_url( $att_id );

相关推荐

custom user table columns

我正在这样做,根据我阅读的所有文档,应该覆盖manage users表中的每一列值。由于某些原因,WP 4.1中不起作用。任何见解都值得赞赏。function retro_custom_users_table_content($value, $column_name, $user_id){ $value = \"hi\"; return $value; } add_filter(\'manage_users_custom_column\',\'retro_c