web-dev-qa-db-ja.com

変数使用時にオーディオプレーヤーのショートコードが表示されない

私が取り組んでいるカスタムページに配置したオーディオショートコードのカスタム用語メタフィールドを呼び出そうとしています。このフィールドには、メディアライブラリにアップロードした.mp3ファイルへのリンクが含まれています。フィールドに実際にオーディオファイルへのリンクが含まれている場合は、オーディオプレーヤーと「オーディオ」というテキストだけを表示するIFステートメントがあります。しかし、現場にリンクがあっても、フロントエンドには何も表示されません。

フィールドに対してvar_dumpを実行したところ、次のように出力されました。

string(95) "echo do_shortcode([audio src="http://www.foo.com/wp-content/uploads/2018/07/audio.mp3"])"

これが私のfunctions.phpに現在あるコードです。

function first_audio() {
                        $terms = get_the_terms($post->ID, 'firstb');
                        $result = "";
                        if (is_array($terms) || is_object($terms)){
                        foreach ($terms as $term) {
                            $term_id = $term->term_id;
                            $result .= 'echo do_shortcode([audio src="'.  get_term_meta($term_id, 'audioreco_64856', true)  .'"])';

                        }
                    }
                    if (!empty(get_term_meta($term_id, 'audioreco_64856', true))) {
                        return $result;}
                    }

そして、これが私のページにあるコードです。

$first_audio = first_audio();
if (!empty($first_audio)) { ?>
<p><?php first_audio(); ?></p>
<?php }
    ?>

私はまたfirst_audio();をエコーし​​ようとしました、しかしそれはちょうどvar_dumpがしたようにちょうど全体のリンクをエコーし​​ました。

1
Darren

次の行を置き換える

 $result .= 'echo do_shortcode([audio src="'.  get_term_meta($term_id, 'audioreco_64856', true)  .'"])';

$result .=  do_shortcode('[audio src="'.  get_term_meta($term_id, 'audioreco_64856', true)  .'"]');

関数の結果をエコーする

<p><?php echo first_audio(); ?></p>
1
Aparna_29