在wordpress中获取附件的文件路径

Getting file path of an attachment in wordpress

我正在尝试获取附件的文件路径,以便将其直接从 Wordpress 中的 custom_post_type 上传到 vimeo,但 $attachment_id 返回 null 。我怎样才能得到 $attachment_id ?

 global $attachment_id;
  $filepath = get_attached_file( $attachment_id ); 
  $url = 'https://api.vimeo.com/me/videos';
  $args = array(
      'type'=>'pull',
      'link'=>'the_link',
    );
  $response_vimeo = wp_safe_remote_post ( $url, $args);  

根据您尝试执行此代码的情况,有多种可能性。一种可能性是

$post = get_post();
$attachment_id = $post->ID;

或者 id 可能来自 $_POST$_GET 变量。尝试添加 print_r($_POST); print_r($_GET); 并查看如果您提交表单或创建 post.

会得到什么

如果你想得到$attachment_id。您必须提供要获取其附件的 post_id。在以下代码的帮助下,您可以获得所有媒体附件,并获得它的路径。

    $args = array('post_type'=>'attachment','numberposts'=>null,'post_status'=>null,'post_parent'=> $post->ID // post_id is important. 
    );
   $attachments = get_posts($args);
    if($attachments){
          foreach($attachments as $attachment){
             // here your code 
              echo $attachment->ID; 
           }
      }

您可以在 for each 中提供您的代码以获取 post 的每个附件。如果您希望获得所有附件,那么您的 $args 变量应该是这样的。

        $args = array('post_type'=>'attachment','numberposts'=>-1,'post_status'=>null );