字符串替换WordPress站点标题

时间:2017-01-22 作者:YorkieMagento

我想在我的Wordpress移动网站标题中去掉一个破折号“-”。为此,我想在破折号周围放置一个跨度,如下所示。

Desired Result

<h1 class="site-title">My Site Title <span class="remove-mob">-</span> Is Great</h1>
这是我当前的PHP代码,有人能建议我进行编辑吗,这样我就可以在网站标题中包含的破折号周围添加上面的span?

Current Code

<h1 class="site-title"><?php bloginfo( \'name\' ); ?></h1>

2 个回复
最合适的回答,由SO网友:Johansson 整理而成

Method 1

您可以使用JavaScript实现这一点。

首先,为您的h1 标签我将使用mobId 您的标题标签如下所示:

<h1 class="site-title" id="mobId">My Site Title - Is Great</h1>
然后用所需代码替换连字符:

<script>
    var myStr = document.getElementById("mobId").innerHTML;
    var newStr = myStr.replace("-", "<span class=\'remove-mob\'>-</span>");
    document.getElementById("mobId").innerHTML = newStr;
</script>
它可以写得更短,但我写了完整的代码,所以你知道发生了什么。

Method 2

使用php剥离str_replace():

<h1 class="site-title">
        <?php echo str_replace("-","<span class=\'remove-mob\'>-</span>", get_bloginfo(\'name\')); ?>
</h1>
您可以保存get_bloginfo(); 并在函数中使用它,以防由于引号而返回错误。

SO网友:Tunji

实际上,您可以使用过滤器来执行此操作。这个bloginfo() 函数实际调用get_bloginfo() 函数并响应结果。

这个get_bloginfo() 在返回输出之前,在输出中应用了过滤器bloginfo。因此,您可以使用add\\u filter来更改函数的结果。

使用此方法,您不必编辑主题文件。

更新:我编辑了该函数,以确保它在全局变量中只运行一次,这应该可以解决它编辑的其他实例的问题bloginfo 假设报头中的调用是最早的。

function wpse253508_change_title( $output, $show ) {

    static $run_once;

    if ( "name" == $show && "change_title" != $run_once ) {
        $run_once = "change_title";
        $output = str_replace("-", "<span class=\'remove-mob\'>-</span>", $output);

        return $output;
    }
    return $output;
}

add_filter( \'bloginfo\', \'wpse253508_change_title\', 10, 2 );

相关推荐

如何将Java脚本添加到Custom-Page.php模板?

如何将javascript添加到自定义页面。php模板?如何使从w3schools ajax教程获得的以下javascript在自定义页面上工作。php模板?任何帮助都将不胜感激。工作javascript包含在以下HTML中:<!DOCTYPE html> <html> <style> table,th,td { border : 1px solid black; border-collapse: collapse;&#x