サポート » 使い方全般 » カスタムフィールドのaudiofileの再生について

  • 解決済 sana0211

    (@sana0211)


    いつも、勉強させていただいてます。
    いま、single.phpにオーディオを設置したいのですが、

    <?php echo do_shortcode( ‘[audio mp3="ファイル名"]‘ ); ?>

    で表示まではできたのですが、ファイルをカスタムフィールドから読み込む方法が
    うまくいかなくて困っています。

    カスタムフィールドの値(file名)でオーディオを再生すること自体は可能なのでしょうか?
    また、可能な場合の方法があるとしたらお手数になりますが、教えてほしいです。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • do_shortcodeでショートコードをコンテンツ外に出力しているなら
    <?php echo do_shortcode( ‘[audio mp3="'. カスタムフィールドの値 .'"]‘ ); ?>
    とかでいいんじゃないですかね。

    トピック投稿者 sana0211

    (@sana0211)

    返事ありがとうございます。
    <?php echo do_shortcode( ‘[audio mp3="'. get_post_meta($post->ID,フィールド名) .'"]‘ ); ?>
    と、してみたのですが、id 番号が表示されるのみでした。
    どこらへんが間違ってしまっているのでしょうか?

    こんにちは

    get_post_meta 第三引数が指定していないので、配列になっているかもしれないですね。

    試していませんが、

    $attr = array(
    	'src'      => trim( get_post_meta($post->ID, 'field name', true ) ),
    	'loop'     => '',
    	'autoplay' => '',
    	'preload' => 'none'
    	);
    echo wp_audio_shortcode( $attr );

    表示するとき、幅が大きすぎると、表示が乱れる事があるので、max-widthかなんかで、幅を制限するといいです。

    ただ、WordPress3.9になると、

    http://tenman.info/labo/snip/archives/4677

    こんな風になってしまうので、注意してください

    トピック投稿者 sana0211

    (@sana0211)

    nobita様、上記のコードで試してみましたが、なにも表示されませんでした。
    mediaにはアップロードされておりそこから添付すれば表示・再生ともに上手くいきました。twenty-tenのテーマでカスタムフィールドテンプレートでファイルをアップロードしているのですが、そちらの問題を考えたほうがよいのでしょうか?

    出力させたい場所はどこなのでしょうか?
    その前後で<?php echo $post->ID);?>で投稿のIDが表示されますか?
    またカスタムフィールドテンプレートでとありますがカスタムフィールドテンプレートのファイルアップロードでカスタムフィールドを登録しているのでしょうか?
    その場合登録されてたのはファイル名ではなくIDだった気がするのですが
    (試しにecho get_post_meta($post->ID, ‘field name’, true )で何が出力されるか確認してみてください)
    そのショートコードはファイル名ではなくファイルのIDが正しいのでしょうか?
    違うのならIDからファイル名を取得する必要があります。

    確認しましたが、動作しているようでした。

    Twenty tenのループ内への記述サンプルです。
    実用的なコードに書き換えました。

    変更は、post IDの取得方法と、mp3が存在しない場合には何も変更しないように、カスタムフィールドの存在をチェック。

    loop-single.php

    </div><!-- #nav-below -->
    <!--追加コード-->
    <div class="my-media" style="max-width:320px;margin:auto;">
    <?php
    $my_media = trim( get_post_meta(get_the_ID(), 'mp3', true ) );
    
    if ( isset( $my_media ) && ! empty( $my_media ) ) {
    	$attr = array(
    		'src'      => $my_media,
    		'loop'     => '',
    		'autoplay' => '',
    		'preload' => 'none'
    		);
    	echo wp_audio_shortcode( $attr );
    }
    ?></div>
    <!--追加コード 終わり-->
    				<?php comments_template( '', true ); ?>
    
    <?php endwhile; // end of the loop. ?>

    twenty-tenのテーマでカスタムフィールドテンプレートでファイルをアップロードしているのですが、そちらの問題を考えたほうがよいのでしょうか?

    カスタムフィールドに、mp3そのものをアップロードした場合は、動作しません。

    回答したコードは、カスタムフィールドにmp3ファイルのURLが記述されている事を前提にしています。

    問題がなければ、メディアのアップロードを使って表示したほうが簡単かつ、テンプレートのメンテも必要ないので、そちらのほうがいいのではないかと思います。

    トピック投稿者 sana0211

    (@sana0211)

    nobita様、gogoweb様。
    一週間ほど、PCに触れなかったので
    返信遅れてしまって大変申し訳ありません。

    【カスタムフィールドに、mp3そのものをアップロードした場合は、動作しません。】

    まさにこれでした。根本的に誤解をしていたようです。
    記載していただいたコードで問題なく動いています。初歩的な問題につき合わせてしまって申し訳ありません。

    ありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「カスタムフィールドのaudiofileの再生について」には新たに返信することはできません。