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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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回答

1993閲覧

wordpressのbuddypressで音楽を再生する方法

SoraSue

総合スコア30

WordPress

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

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2017/01/08 07:48

###前提・実現したいこと
現在、wordpressのbuddypressを使って、SNS×ToDoリストのようなサイトを作っています。
###発生している問題・エラーメッセージ
特定の条件を満たした時、自動で音楽を再生するようにしたいのですが、<audio>タグでファイルを指定しても、音楽が再生されません。
###該当のソースコード

javascript

1<!DOCTYPE HTML> 2<html> 3//文字制限のために、幾つか本件に関係の薄い部分を省略させていただいています。 4<script type="text/javascript" > 5$(document).ready(function(){ 6 (function(){ 7 $.ajax({ 8 type: 'POST', 9 url: ajaxurl, 10 data: { 11 'action' : 'GetMyToDo' 12 } 13 }).done(function( data ){ 14 var MyToDoList = data; 15 var MyToDo = MyToDoList.split(","); 16 $.ajax({ 17 type: 'POST', 18 url: ajaxurl, 19 data: { 20 'action' : 'GetDay', 21 'MyToDo' : MyToDo 22 } 23 }).done(function( data ){ 24 var DayList = data; 25 var Day = DayList.split(","); 26 for(i=0; i<MyToDo.length; i++){ 27 var MyToDoList = $(".ToDo_Ul").append("<li class='todo'>" + MyToDo[i] + "</li>"); 28 var DayList = $(".ToDo_Ul").append("<li class='made_date'>" + Day[i] + "</li>"); 29 $("#ToDo_Box").append(MyToDoList); 30 $("#ToDo_Box").append(DayList); 31 if($('.todo').text()==""){ 32 $('.todo').remove(); 33 $('.made_date').remove(); 34 }else{} 35 } 36 function CheckTaskDate(){ 37 }CheckTaskDate();setInterval(CheckTaskDate, 60000); 38 }).always(function( data ) { 39 function Check(){ 40 var Now = new Date(); 41 var hours = Now.getHours(); 42 var minutes = Now.getMinutes(); 43 var seconds = Now.getSeconds(); 44 var CheckYear = Now.getFullYear(); 45 var CheckMonth = Now.getMonth()+1; 46 var CheckDate = Now.getDate() - 1; 47 var CheckHour = 0; 48 var CheckMinute = 0; 49 var CheckSecond = 0; 50 var NowList = $('.ToDo_Ul').text(); 51 $.ajax({ 52 type: 'POST', 53 url: ajaxurl, 54 data: { 55 'action' : 'ErrorSound'}, 56 }).done(function( data ){ 57 }) 58 if(hours*60*60+minutes*60+seconds>CheckHour*60*60+CheckMinute*60+CheckSecond){ 59 $.ajax({ 60 type: 'POST', 61 url: ajaxurl, 62 data: { 63 'action' : 'CheckToDo', 64 }, 65 }).done(function( data ){ 66 var LastList = data; 67 if(NowList == LastList){ 68 alert("今日はまだToDoリストを編集していません。早くToDoを入力してください。"); 69 } 70 else{ 71 $.ajax({ 72 type: 'POST', 73 url: ajaxurl, 74 data: { 75 'action' : 'ToDos', 'NowList' : NowList 76 }, 77 }).done(function( data ){ 78 }) 79 } 80 }) 81 } 82 }Check(); 83 setInterval(Check, 60000); 84 }); 85 }) 86 }()); 87//文字制限のために、幾つか本件に関係の薄い処理を省略させていただいています。 88}); 89</script> 90</head> 91<body> 92<div id="container"> 93<!--<audio src="ErrorSound1.mp3" type="audio/mp3" autoplay loop></audio>--> 94<form action="bp-custom.php" method="post"> 95<textarea id="memo" name="memo"></textarea> 96<p><form action="bp-custom.php" method="post" id="DateBox" style="display:inline;"> 97<label>締め切り:<input type="text" id="TaskDate" name="TaskDate" placeholder="yyyy-mm-dd(例:2016-01-09)" required></label> 98<input type="button" id="save" value="保存" > 99</form></p></form> 100<div id="ToDo_Box"> 101<div id="loading" /> 102<ul class="ToDo_Ul"> 103</ul></div></div></body></html>

php

1function add_my_ajaxurl() { 2?> 3 <script> 4 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>'; 5 </script> 6<?php 7} 8add_action( 'wp_head', 'add_my_ajaxurl', 1); 9 10function GetMyToDo(){ 11 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 12 while ( bp_members() ) : bp_the_member(); 13 global $wpdb,$bp; 14 $MyUserID = $bp->loggedin_user->id; 15 $MyToDo = $wpdb->get_results(" 16 SELECT meta_value 17 FROM $wpdb->usermeta 18 WHERE user_id = $MyUserID 19 AND meta_key = 'ToDoList' 20 ", ARRAY_A ); 21 foreach((array)$MyToDo as $item) { 22 $MyToDoList[] = $item['meta_value'] ? $item['meta_value'] : "NULL"; 23 } 24 $MyToDoList = join(",",$MyToDoList); 25 echo $MyToDoList ; 26 die(); 27 endwhile ; 28 endif; 29 } 30 add_action( 'wp_ajax_GetMyToDo', 'GetMyToDo' ); 31 32 function GetDay(){ 33 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 34 while ( bp_members() ) : bp_the_member(); 35 global $wpdb,$bp; 36 $MyUserID = $bp->loggedin_user->id; 37 $Day = $wpdb->get_results(" 38 SELECT PlanDate 39 FROM $wpdb->usermeta 40 WHERE user_id = $MyUserID 41 AND meta_key = 'ToDoList' 42 ", ARRAY_A ); 43 foreach((array)$Day as $item) { 44 $DayList[] = $item['PlanDate'] ? $item['PlanDate'] : "NULL"; 45 } 46 $DayList = join(",",$DayList); 47 echo $DayList; 48 die(); 49 endwhile ; 50 endif; 51 } 52 add_action( 'wp_ajax_GetDay', 'GetDay' ); 53 54function ErrorSound(){ 55 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 56 while ( bp_members() ) : bp_the_member(); 57 $member_cover_image_url = bp_attachments_get_attachment('url', array( 58 'object_dir' => 'error_sound', 59 'item_id' => bp_get_error_sound(), 60 )); 61 ?> 62 <audio src="<?php echo ErrorSound1.mp3; ?>" type="audio/mp3" autoplay loop></audio> 63 <?php 64 endwhile ; 65 endif; 66 } 67 add_action( 'wp_ajax_ErrorSound', 'ErrorSound' ); 68 69function CheckToDo(){ 70 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 71 while ( bp_members() ) : bp_the_member(); 72 global $wpdb,$bp; 73 $MyUserID = $bp->loggedin_user->id; 74 $NowList = filter_input(INPUT_POST, 'NowList'); 75 $Now = new DateTime(); 76 $Now = $Now->setTimeZone( new DateTimeZone('Asia/Tokyo')); 77 $NowDate = $Now->format(Ymd); 78 $LastList = $wpdb->get_results(" 79 SELECT meta_value 80 FROM $wpdb->usermeta 81 WHERE user_id = $MyUserID 82 AND meta_key = 'checkToDo' 83 AND Date != $NowDate 84 ", ARRAY_A ); 85 foreach((array)$LastList as $item) { 86 $LastList = $item['meta_value'] ; 87 } 88 echo $LastList; 89 die(); 90 endwhile ; 91 endif; 92 } 93 add_action( 'wp_ajax_CheckToDo', 'CheckToDo' ); 94 95function ToDos(){ 96 if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : 97 while ( bp_members() ) : bp_the_member(); 98 global $wpdb,$bp; 99 $MyUserID = $bp->loggedin_user->id; 100 $NowList = filter_input(INPUT_POST, 'NowList'); 101 $Now = new DateTime(); 102 $Now = $Now->setTimeZone( new DateTimeZone('Asia/Tokyo')); 103 $NowDate = $Now->format(Ymd); 104 $NowTime = $Now->format(His); 105 $wpdb->update($wpdb->usermeta, 106 array('meta_value' => $NowList, 107 'Date' => $NowDate, 108 'Time' => $NowTime), 109 array('user_id' => $MyUserID, 110 'meta_key' => 'checkToDo',), 111 array('%s'), 112 array('%d','%s') 113 ); 114/* $ErrorSound = wp_enqueue_script( 'ErrorSound1.mp3', false, array(), false, false ); 115 echo $ErrorSound;*/ 116 die(); 117 endwhile ; 118 endif; 119 } 120add_action( 'wp_ajax_ToDos', 'ToDos' ); 121//文字制限のために、幾つか本件に関係の薄い処理を省略させていただいています。

###試したこと
まず、HTML5の<audio>タグを使ってみましたり、buddypressのcodexを参考に、function "ErrorSound"を作ってみたりしましたが、音楽は流れませんでした。
###補足情報
今はローカル開発環境上で作っていおり、ブラウザはchromeを利用しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

回答になっていませんが、こうではないですか?

HTML

1<!-- <audio src="<?php echo ErrorSound1.mp3; ?>" type="audio/mp3" autoplay loop></audio> --> 2<audio src="<?php echo get_stylesheet_directory_uri() . '/audio/ErrorSound1.mp3'; ?>" type="audio/mp3" autoplay loop></audio>
  • 引用符をつける。
  • ファイルを絶対パスで記述する。

投稿2017/01/08 10:30

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

SoraSue

2017/01/08 13:54

音楽ファイルを、使っているテーマのファイルの中に入れて、mizさんが教えてくれたコードを使うと音楽を流せました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問