【发布时间】:2019-07-24 01:59:37
【问题描述】:
我想创建一个简码,在文档中搜索某个元素,该元素的 DOM 位置与简码有定义的关系。
例子:
<div>
<div class="target" data-target="SomeValue">SomeValue<div>
<div>more html here</div>
<div>[gettarget]</div>
</div>
<div>
<div class="target" data-target="SomeOtherValue">SomeOtherValue<div>
<div>more html here</div>
<div>[gettarget]</div>
</div>
函数gettarget如何访问其类target的兄弟div(将只有一个)并获取其内容(或其data-target属性,没关系)。所以最后我想要
- 第一次调用
gettarget以访问SomeValue和 - 第二次调用
gettarget以访问SomeOtherValue。
我能得到的最远的是:
$doc = new DOMDocument();
echo $_SERVER['SCRIPT_NAME'];
$doc->loadHTMLFile($_SERVER['SCRIPT_NAME']);
$xpath = new DOMXpath($doc);
var_dump($xpath);
产生:
/wp-admin/admin-ajax.phpobject(DOMXPath)#11113 (1) { ["document"]=> string(22) "(object value omitted)" }
那不是我的文件:-/
【问题讨论】:
-
How can the function gettarget access its sibling-div of class target不能,在wordpress中调用do_shortcode时页面还没有完成。此外,只有打开和关闭简码[start]content[/start]中的内容被传递给简码,外部内容均不可访问(不使用 javascript)。 -
您可以使用过滤器,例如
add_filter( 'the_content', 'filter_function_name' )正则表达式/\[gettarget\]/,以及不是短代码[gettarget]的东西,因为如果它们不是实际的短代码,WP 会将它们留在里面。然后,当您拥有完整的内容时,您可以在 DOM 中访问您想要的内容。等等等等。 -
你想用这些值做什么?因为您可以将一个 JS 文件排入队列,该文件很容易将它们抓取到准备好的文档中。
-
@Second2None - 感谢您的补充,这就是我在第一条评论中提到的
(without the use of javascript)的意思。但你说得更好...... :)
标签: php wordpress dom shortcode