无法获得当前的帖子标题

时间:2015-06-13 10:10:03

标签: php jquery html ajax wordpress

我目前正在使用wordpress,我有一个链接应该播放<div id="menu" class="menu"> <ul class="headlines"> <li id="item1"onclick="checklist(this)"><button onclick="myFunction()">AA</button></li> <li id="item2"><button onclick="myFunction2()">A </button></li> <li id="item3">B </li> <li id="item4">C </li> <li id="item5">D </li> <li id="item6">E </li> <li id="item7">F </li> </ul> </div>文件,具体取决于帖子的标题。因此,如果帖子标题为wav,那么它应该从uploads文件夹中播放'one'。但是,每个帖子上的声音文件只播放最新的帖子标题。因此,如果我添加了一个名为one.wav的帖子,然后添加了一个名为two的帖子,则这两个帖子都会播放one

以下是代码:

HTML

one.wav

JQuery的

<span id="dummy"></span>
<a class="playSound" onclick="playSound();" href="#">
  <i class="fa fa-volume-up"></i>
</a>  

和PHP

function playSound() {
        $.ajax({
            url: 'sound.php',
            data: "getSound",
            type: "GET",
            datatype: "html",
            success: function(data) {
                document.getElementById("dummy").innerHTML= "<embed src=\""+data+"\" hidden=\"true\" autostart=\"true\"loop=\"false\" />";
            }
        });
}

我认为<?php require('./wp-blog-header.php'); if(isset($_GET['getSound'])) { $file='wp-content/uploads/2015/wav/' . get_the_title() . '.wav'; echo $file; } ?> 是正确的电话,但此时我不太确定。我已经尝试了所有其他呼叫功能,但仍然没有运气。我假设在这一点上与页面加载和存储初始帖子标题有关,但我现在只是迷失了。

4 个答案:

答案 0 :(得分:0)

更改sound.php文件代码,如

<?php

require('./wp-blog-header.php');

  global $post;
  setup_postdata( $post );

  if(isset($_GET['getSound'])) {
    $file='wp-content/uploads/2015/wav/' . get_the_title( get_the_ID() ) . '.wav';
    echo $file;  
  }
?>

答案 1 :(得分:0)

您可以简单地获取第二个PHP代码并使用javascript:

function playSound() {
            document.getElementById("dummy").innerHTML= "<embed src='wp-content/uploads/2015/wav/<?php echo get_the_title( get_the_ID() ) ?>.wav' />";
}

答案 2 :(得分:0)

<?php 
$sound_query = new WP_Query();
    if ($sound_query->have_posts()):
        while ($sound_query->have_posts()):
        $sound_query->the_post();
?>
<script>
function playSound() {
   document.getElementById("dummy").innerHTML= "<embed src='wp-content/uploads/2015/wav/<?php echo get_the_title() ?>.wav' />";
}
</script>

<?php 
    endwhile;
endif;
wp_reset_postdata();
?>

答案 3 :(得分:0)

一切都是脱节的。 JS文件不知道你试图定位的帖子,因此sound.php文件也不知道。

将帖子ID传递给JS文件,然后将其传递给sound.php文件,然后从中提取帖子。

此外,请尝试不使用帖子标题,使用ID作为帖子标题,并且可以更改帖子名称。

示例:

HTML

<a class="playSound" onclick="playSound(<?php echo $post->ID; ?>);" href="#">
  <i class="fa fa-volume-up"></i>
</a>

JS

function playSound(postID) {
  $.ajax({
    url: 'sound.php',
    data: data: {"postID": postID
    type: "GET",
    datatype: "html",
    success: function(data) {
      //Function here
   })
}

PHP

if(isset($_GET['postID'])) {
  $file='wp-content/uploads/2015/wav/' . $_GET['postID'] . '.wav';
  echo $file;  
}

或类似的东西。