如何在帖子中获取所有ID部分?

时间:2018-06-12 18:17:21

标签: php html wordpress html5

有没有办法在wordpress帖子内容中获取ID?举个例子,我在post_content()中有这个结构:

get_header()

<div class="main-content">
  <section id="jumbotron">
    <div class="container">
      <!-- SOME CONTENT !-->
    </div>
  </section>
  <section id="about">
    <div class="container">
      <!-- SOME CONTENT !-->
    </div>
  </section>
  <section id="projects">
    <div class="container">
      <!-- SOME CONTENT !-->
    </div>
  </section>
  <section id="contacts">
    <div class="container">
      <!-- SOME CONTENT !-->
    </div>
  </section>
</div>

get_footer()

.main-content中的所有内容都是post_content()。我需要的是获取#jumbotron#about#projects#contacts并使用foreach打印相当数量的li。

<ul>
  <li><a href="#jumbotron">Jumbotron</a></li>
  <li><a href="#about">Jumbotron</a></li>
  <li><a href="#projects">Jumbotron</a></li>
  <li><a href="#contact">Jumbotron</a></li>
</ul>

这甚至可能吗?我试图寻找一个解决方案,但无法从wordpress api中找到那样做的东西。

3 个答案:

答案 0 :(得分:0)

我一定会用jQuery来做。有多种解决方案可供选择:

$('.main-content').children()

$('.main-content > *')

答案 1 :(得分:0)

毕竟我用jQuery做了这个。代码在我的自定义脚本JS文件中,我在我的php模板文件中创建了一个容器#uList。

var IDs = $(".main-content section[id]") 
  .map(function() { return this.id; })
  .get(); 

$listSelector = $("#uList")
  $.each(IDs, function(i, obj) {
    $listSelector.append("<li><a href=#"+obj+">"+obj+"</a></li>")
});

答案 2 :(得分:0)

只需将适当的元素收集到JQuery对象中,然后遍历该对象并构建所需的输出:

&#13;
&#13;
self
&#13;
let results = "<ul>";
$(".main-content > section[id]").each((i,el)=>{ 
  results += "<li><a href='#" + el.id + "'>" + el.id + "</a></li>";
});

$(document.body).append(results + "</ul>");
&#13;
&#13;
&#13;