String replace Wordpress Site Title

2

Quiero deshacerme de un guión '-' en el título de mi sitio de Wordpress en dispositivos móviles. Para hacer eso, quiero colocar un espacio alrededor del tablero, algo como lo siguiente.

Resultado deseado

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

Aquí está mi código PHP actual, ¿alguien puede sugerir una edición, para que pueda agregar el intervalo arriba alrededor del guión contenido en el título del sitio?

Código actual

<h1 class="site-title"><?php bloginfo( 'name' ); ?></h1>
    
pregunta YorkieMagento 22.01.2017 - 14:58

2 respuestas

3

Método 1

Puedes hacer esto usando JavaScript.

Primero, agregue una identificación para su etiqueta h1 . Usaré mobId aquí para que su etiqueta de encabezado se vea así:

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

Luego reemplace el guión con el código deseado:

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

Se puede escribir más corto, pero escribí el código completo para que sepas lo que está pasando.

Método 2

Tira usando php str_replace() :

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

Puede guardar get_bloginfo(); en una variable y usar eso en la función, en caso de que se produzca un error debido a las comillas.

    
respondido por el Jack Johansson 22.01.2017 - 16:37
3

Puedes hacerlo usando un filtro. La función bloginfo () en realidad llama a la función get_bloginfo () y se hace eco del resultado.

El get_bloginfo () tiene un filtro bloginfo aplicado en la salida anterior se ha devuelto Así que puedes usar add_filter para alterar el resultado de la función.

Al usar este método, no tendrás que editar tus archivos de tema.

ACTUALIZACIÓN: edité la función para asegurarme de que solo se ejecute una vez en la variable global, esto debería resolver el problema de la edición de otras instancias de bloginfo asumiendo que la llamada en el encabezado es la más temprano.

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 );
    
respondido por el Tunji 22.01.2017 - 18:48

Lea otras preguntas en las etiquetas