wordpress从发布到页面发送值

时间:2017-08-08 04:23:35

标签: php wordpress

我是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到页面吗?

1 个答案:

答案 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);