質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1491閲覧

【WordPress】添付ファイル(wavデータ)のIDを指定して、そのファイルの再生時間を取得したい

bokupiroki

総合スコア54

WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/02/12 16:26

編集2020/02/12 16:27

###実現したいこと・前提条件

  • WordPressの「メディア」上に存在する音源ファイル(wavデータ)のIDを指定してメタ情報を出力したい(本例ではID491)
  • 具体的には、音源の再生時間(長さ)を出力したい
  • メディアファイルのURLを含んだaudioタグを生成して、そこから再生時間を抽出する方法は訳合って使えない

イメージ説明

###試したこと
例えば「get_attached_file」という関数を利用して、
メディアファイルのIDを元に該当データのファイル名を出力することはできました。

php

1$filename_only = basename( get_attached_file( '491' ) ); 2echo $filename_only ; 3 4実行結果:loop1.wav

同じような要領でファイルの再生時間を取得したいのですが、
何か方法はないでしょうか。

本来はaudioタグを生成してjavascriptで再生時間を抽出すべきかとは思うのですが、
WordPressの関数などでどうにかできないか検討しております。

###補足情報(FW/ツールのバージョンなど)
WordPress5.3.2
woocommerce3.8.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

過去の回答において既に提示されている方法があるのでは。

【PHP - javascriptやphpなどを使ってwavファイルのURLからデータの長さ(時間)を取得したい|teratail】
https://teratail.com/questions/239769#reply-348453

でもまぁ、音楽ファイルを扱う為のモジュールを組み込んで

実際に再生はしないけれど、再生出来るベースでファイルを開く事は可能なようです。
getID3()を使った音楽ファイルの情報取得

投稿2020/02/12 16:32

kei344

総合スコア69606

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bokupiroki

2020/02/12 16:50 編集

まさに過去に質問した内容の回答でで理論上は実現できるのですが、 「ファイルのURL」はWoocommerceというプラグインを利用して販売するデータのURLであり、 購入した人にしかアクセス権が与えられないので 結果として購入前のページの段階ではURLにアクセスできず、再生時間等の情報が取得できないという状況に陥ることに気づきました。 一般的なレンタルサーバーなので難しいかもしれませんが、getID3()を使った音楽ファイルの情報取得も試してみます。
kei344

2020/02/12 16:52

特に変わったことをしていなければ、basenameを外せばサーバ上のパスが手に入ると思いますよ。
bokupiroki

2020/02/12 17:11

頂いた情報をもとにいろいろ試していたところ、どういうわけかうまくいきました。 $audio_meta = get_post_meta( '491' , '_wp_attachment_metadata', true ); echo $audio_meta['length_formatted']; ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問