wake-up-neo.com

String ersetzen Wordpress Site Title

Ich möchte einen Gedankenstrich "-" in meinem Wordpress-Seitentitel auf dem Handy entfernen. Um das zu tun, möchte ich eine Spanne um den Bindestrich legen, so ähnlich wie unten.

Erwünschtes Ergebnis

<h1 class="site-title">My Site Title <span class="remove-mob">-</span> Is Great</h1>

Hier ist mein aktueller PHP Code. Kann jemand eine Bearbeitung vorschlagen, damit ich den Bereich oberhalb des im Site-Titel enthaltenen Bindestrichs hinzufügen kann?

Aktueller Code

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

Methode 1

Sie können dies mit JavaScript tun.

Fügen Sie zunächst eine ID für Ihr h1 -Tag hinzu. Ich werde hier mobId verwenden, damit Ihr Header-Tag so aussieht:

<h1 class="site-title" id="mobId">My Site Title - Is Great</h1>

Ersetzen Sie dann den Bindestrich durch Ihren gewünschten Code:

<script>
    var myStr = document.getElementById("mobId").innerHTML;
    var newStr = myStr.replace("-", "<span class='remove-mob'>-</span>");
    document.getElementById("mobId").innerHTML = newStr;
</script>

Es kann kürzer geschrieben werden, aber ich habe den vollständigen Code geschrieben, damit Sie wissen, was los ist.

Methode 2

Strip mit PHP str_replace():

<h1 class="site-title">
        <?php echo str_replace("-","<span class='remove-mob'>-</span>", get_bloginfo('name')); ?>
</h1>

Sie können get_bloginfo(); in einer Variablen speichern und diese stattdessen in der Funktion verwenden, falls aufgrund von Anführungszeichen ein Fehler ausgegeben wird.

3
Jack Johansson

Sie können dies tatsächlich mit einem Filter tun. Die Funktion bloginfo () ruft tatsächlich die Funktion get_bloginfo () auf und gibt das Ergebnis wieder.

Das get_bloginfo () hat einen Filter bloginfo in der Ausgabe angewendet, bevor es zurückgegeben wird. Sie können also add_filter verwenden, um das Ergebnis der Funktion zu ändern.

Mit dieser Methode müssen Sie Ihre Designdateien nicht bearbeiten.

UPDATE: Ich habe die Funktion bearbeitet, um sicherzustellen, dass sie nur einmal in der globalen Variablen ausgeführt wird. Dies sollte das Problem beheben, dass andere Instanzen von bloginfo bearbeitet werden, vorausgesetzt, der Aufruf im Header ist der früheste.

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 );
3
Tunji