我是php和wordpress的新手。
我想解析xml并在帖子上显示结果。
这是xml:
<?xml version="1.0" encoding="utf-8"?>
<all_emp>
<emp_detail>
<emp emp_name="john"><img>john_1.jpg</img></emp>
<emp emp_name="john"><img>john_2.jpg</img></emp>
<emp emp_name="john"><img>john_3.jpg</img></emp>
<emp emp_name="marry"><img>marry_1.jpg</img></emp>
<emp emp_name="marry"><img>marry_2.jpg</img></emp>
<emp emp_name="david"><img>david_1.jpg</img></emp>
</emp_detail>
</all_emp>
我在functions.php中使用短代码在帖子中显示它。
$url = 'https://.../emp_test.xml';
$xml = simplexml_load_file("$url") or die("Error: Cannot create object");
$names = array();
$emps = $xml->children()->emp_detail->emp ;
foreach($emps as $emp_detail)
{
$source = (string)$emp_detail->attributes()->emp_name;
$names[]= $source;
}
$names = array_unique($names);
return implode("<br />", $names);
所以,在帖子中,我的结果如下:
john
marry
david
之后,如何点击john,它会发送字符串是john到页面吗?
答案 0 :(得分:0)
让我成为第一个说这不是最理想的方式。但是,您可以为将处理这些名称的页面创建模板。然后创建一个使用此模板的wordpress页面。假设您创建的页面是:http://[SITEURL]/name-handling-page
然后您可以修改上面的短代码以返回网址而不是jsutthe names:
$names = array_unique($names);
$links = array();
foreach ($names as $name)
{
$links[] = get_permalink('name-handling-page')."?name=$name"; //replace name-handling-page with slug or id of newly created page
}
return implode("<br />", $links);