Reemplazar cadena de texto en páginas individuales

20 nov 2018, 03:17:59
Vistas: 18.6K
Votos: 1

Estoy buscando reemplazar algunas cadenas de texto solo en dos páginas específicas de un sitio WordPress. No debería afectar esas cadenas en ninguna otra página. Preferiría hacer esto añadiendo algo de código al functions.php

Creo que usar parte de este código sería el primer paso, solo necesito ayuda con el resto https://wordpress.stackexchange.com/a/278357

3
Comentarios

Bienvenido/a a WPSE. Necesitas un poco más de contexto en tu pregunta. Según el enlace, parece que quieres cambiar algunas cadenas de traducción. Si es así, deberías indicarlo explícitamente en tu pregunta. Además, un ejemplo relevante (además de solo un fragmento de código de otra pregunta) sería útil para cualquiera que intente responder. Esto daría algo de contexto a tu pregunta.

butlerblog butlerblog
20 nov 2018 03:24:32

Podrías añadir un filtro a the_content, pero depende de si quieres traducir, reemplazar la salida o reemplazar el contenido guardado.

majick majick
20 nov 2018 04:59:18

por favor revisa este enlace: https://wp-mix.com/replace-all-instances-string-wordpress/

vikrant zilpe vikrant zilpe
20 nov 2018 06:15:56
Todas las respuestas a la pregunta 3
1

No puedo comentar, así que responderé y ajustaré ligeramente la respuesta de Bhagyashree, que es exactamente lo que necesitarás hacer según tu pregunta. Excepto que quizás quieras saber cómo incluir las 2 páginas en lugar de duplicar la función. Y también pasar un array de cadenas para reemplazar.

function replace_some_text( $content ) {
   
    // Nota el || estamos diciendo si es página1 O página2. También cambiado a is_single.
    if( is_single( 2020 ) || is_single( 2021 ) {

       $text_strings_to_replace = array( 'primer_texto', 'segundo_texto', 'tercer_texto_a_reemplazar' );

       $content = str_replace( $text_strings_to_replace, 'texto_nuevo', $content );
       
}

       return $content;
}

add_filter('the_content', 'replace_some_text');

Pequeña explicación. Básicamente, nos conectamos a un filtro de WordPress [add_filter][1] que nos permite filtrar todo el contenido de la página.

Filtramos el $content dentro de nuestra función, en este caso usando una función de PHP [str_replace][1] para buscar en el contenido nuestro array de cadenas y reemplazarlas con 'texto_nuevo'.

8 ene 2021 18:37:00
Comentarios

Las soluciones propuestas anteriormente no funcionaron para mí desafortunadamente, aparentemente porque en este caso el plugin WooCommerce sobreescribe una función en functions.php. Por lo tanto, la solución para mí fue utilizar el plugin Say What.

Aco Aco
29 jul 2024 00:56:46
0

Un ejemplo de cómo reemplazar todas las instancias de una cadena en WordPress. Solo añade el siguiente código al archivo functions.php de tu tema:

function replace_text($text) {
    $text = str_replace('buscar-esta-cadena', 'reemplazar-con-esta-cadena', $text);
    $text = str_replace('buscar-esa-cadena', 'reemplazar-con-esa-cadena', $text);
    return $text;
}                                                                                           
add_filter('the_content', 'replace_text');

Más información en http://php.net/manual/en/function.str-replace.php

20 nov 2018 06:19:56
0

He estado lidiando con el mismo problema durante las últimas 18 horas. Probé múltiples permutaciones y combinaciones de códigos y finalmente, esto funcionó para mí. Coloca este código en Apariencia >> Editor de temas >> archivo functions.php:

function replace_text( $text ) {
    if( is_page( 1709 ) ) {
       $text = str_replace('old_text', 'new_text', $text);
       $text = str_replace('old_text', 'new_text', $text);
       }

return $text;
}

add_filter('the_content', 'replace_text');
  • old_text es el texto que deseas reemplazar y new_text es el texto con el que deseas reemplazarlo.
  • Para determinar el ID, por favor edita la página, encontrarás el ID en la URL.
31 jul 2020 22:31:34