如何在wordpress中创建包含data-hover =" PAGETITLEHERE"?

时间:2016-01-25 14:45:27

标签: php wordpress

好的有一个问题做了一些研究,并让它工作,所以我可以把我的李的跨度工作得很好,但在跨度我有一个数据悬停标签,在里面我想要把标题页面,但无法弄清楚如何。

同时它显示所有页面,当我只想显示我之前做过的父级的孩子时,但是当将echo $ pages更改为echo $ children时它会工作并显示所有孩子,但随后删除了我的跨度信息

任何人都可以帮助继承代码......

{ if($post->post_parent)
    $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
        else
    $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
        if ($children) { ?>
            <ul class="cl-effect-2" id="cl-effect-2">
                <?php
        $pages = wp_list_pages('echo=0&title_li=');
        $pages = str_replace('">', '"><span data-hover="PAGETITLEHERE">', $pages);
        $pages = str_replace('<span data-hover="PAGETITLEHERE"><a', '<a', $pages);
        $pages = str_replace('</a>', '</span></a>', $pages);
        echo $pages;
    ?>
            </ul>
     <?php } ?> }

2 个答案:

答案 0 :(得分:0)

您将$pages变量替换为str_replace,请尝试使用$children变量。

{ if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
    else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
    if ($children) { ?>
        <ul class="cl-effect-2" id="cl-effect-2">
            <?php
    $pages = wp_list_pages('echo=0&title_li=');
    $children = str_replace('">', '"><span data-hover="PAGETITLEHERE">', $pages);
    $children = str_replace('<span data-hover="PAGETITLEHERE"><a', '<a', $pages);
    $children = str_replace('</a>', '</span></a>', $pages);
    echo $children;
?>
        </ul>
 <?php } ?> }

答案 1 :(得分:0)

我有一个答案

在funktion.php中我挂了

    add_filter( 'wp_list_pages', 'wp_list_pages_hook', 11, 2 );
function wp_list_pages_hook( $output, $r ){
    if( ! is_front_page() ){
        $output = preg_replace('~<a([^>]+)>(.*?)</a>~', '<a $1 > <span data-hover="$2">$2</span></a>', $output);
    }
    return $output;
}

现在我可以在header.php中使用简单的

<?php wp_list_pages('exclude=41&title_li='); ?>