我在基于WP的网站上创建了一个简单的简报页面。每当有人注册时事通讯时,他选择的电子邮件地址和类别都会存储在该页面的元数据中。
来自newsletter.php的代码示例(这是一个模板):
add_post_meta(get_the_ID(), 'subscribed', array('email' => $_POST['email'], 'cats' => $_POST['chosenCats'], 'time' => get_the_time('d-m-Y | H:i')));
以下是以这种方式存储的两个订阅的示例:
array(2) {
[0]=>
array(3) {
["email"]=>
string(14) "agsdgeg@sdghrh"
["cats"]=>
string(21) "inwestycje;targi_wyd;"
["time"]=>
string(18) "23-02-2015 | 12:18"
}
[1]=>
array(3) {
["email"]=>
string(10) "asfas@egeg"
["cats"]=>
string(31) "produkty;katalog_firm;medycyna;"
["time"]=>
string(18) "23-02-2015 | 12:18"
}
}
我想做什么?
有什么难的呢?
对我来说最困难的部分是弄清楚如何在functions.php中浏览页面的元数据。你能帮帮我吗?
答案 0 :(得分:0)
使用preg_replace_callback很容易,使用正则表达式过滤元标记。
<?php
$html = '<meta encoding="utf-8">';
$metadataArray = array();
$metadata = preg_replace_callback('/\<meta\s(.*)\>/i', function($matches)
{
$exp = explode($matches[1]);
$metadataArray[$exp[0]] = str_replace('"', '', $exp[1]);
}, $html);
现在,您确实比这个示例更好,但它是从元标记中过滤掉数据的快捷方式,假设这是您正在寻找的目标。