¿Cómo puedo evitar que las actualizaciones de temas de WordPress cambien las funciones de mis temas principales.php?

5 minutos de lectura

avatar de usuario
Alex

Actualmente he implementado manualmente un código de seguimiento en wp-content/themes/genesis/header.php

El código se ve así (acortado):

<script>
  CODE HERE
<?php if (is_single()){CODE HERE}?>
  CODE HERE
</script>
</head>

Cada vez que actualizo genesis (el tema de WordPress), este código se pierde y tengo que agregarlo manualmente nuevamente.

¿Cómo puedo agregar este código a través de la functions.php a la sección principal en wp-content/themes/genesis/header.php para que sobreviva a una actualización del tema de WordPress: ¿cómo se vería el código?

  • Intente crear un tema secundario y luego, en el archivo header.php de su tema secundario, puede agregar el código que desee y cada vez que se actualice el tema principal, no perderá sus ediciones.

    – Robbiegod

    26/04/2016 a las 19:25

  • ¿Cómo te fue con este Alex?

    –Tim Malone

    11 mayo 2016 a las 20:33

avatar de usuario
nabeel khan

necesitas usar wp_head enlace para agregar contenido a la <head></head> dinamicamente.

Su código se vería así:

add_action('wp_head', 'change_this_name');
function change_this_name(){
  ?>
  <script>
    CODE HERE
  <?php if (is_single()){CODE HERE}?>
    CODE HERE
  </script>
  <?php
};

  • Si se coloca en el tema functions.php, esto aún se anulará cuando se actualice el tema. Sin embargo, colocarlo en un complemento o en un tema secundario estaría bien.

    –Tim Malone

    26/04/2016 a las 20:00

  • sí, puede colocarlo donde quiera

    – Nabel Khan

    27 de abril de 2016 a las 5:41

  • En mi opinión, esta pregunta es más sobre cómo evitar reescribir functions.php cada actualización… por lo tanto, la respuesta de Tim es más apropiada.

    – jsonV

    10 de enero de 2020 a las 8:02


avatar de usuario
tim malone

En general, la solución para modificar su tema sin que se sobrescriban sus modificaciones es usar un tema secundario. Pero también podría crear un pequeño complemento que haría lo mismo que quiere hacer aquí.

La opción que tomas es en general mucho por ahora, pero si está planeando más cambios en el futuro, debe tener en cuenta que:

  • los complementos son para agregar funcionalidad
  • los temas son para controlar cómo se ven y se sienten las cosas

Esto podría ayudarlo a decidir qué opción es mejor tomar ahora (aunque puede hacer ambas cosas fácilmente o cambiar más tarde si lo desea :)).

Opción 1: Crear un tema hijo

Crear una nueva carpeta en el wp-content/themes carpeta (asígnele el nombre que le gustaría llamar a su nuevo tema), y luego cree una style.css en esa carpeta.

En la cima de style.css deberá incluir información definitoria para su tema. Puede copiar el formato para esto del tema Génesis, solo cambie el nombre y otros detalles para que quede claro cuando vaya a activarlo que este es su tema.

La clave aquí es agregar una nueva línea a la lectura de información de este tema:

Template: genesis

Esa línea le dice a WordPress que su tema será un tema secundario de Génesis, y cualquier cosa que su tema no proporcione, WordPress lo tomará de Génesis.

La clave aquí es anular solo lo que tu quieras y deje que el resto regrese a Génesis.

Vos tambien pudo copia el header.php y agregue su código, pero aún deberá actualizar el resto del archivo si cambia. Una mejor solución sería crear su propia functions.php en su nuevo tema hijo y use lo siguiente:

add_action('wp_head', function(){
  ?>
  Enter tracking code here...
  <?php
});

Esto luego se conectará a la acción principal de WordPress e imprimirá el código de seguimiento justo donde lo desee, sin tener que jugar con el resto del encabezado.

Por supuesto, una vez que esté listo, vaya a Apariencia -> Temas en WordPress y verá su nuevo tema allí. ¡Actívalo y revisa tu sitio!

Para obtener más antecedentes y consejos sobre temas secundarios, puede consultar esta página en el Codex de WordPress.

Opción 2: Crear un complemento

Si es solo una funcionalidad que desea agregar a su sitio, puede encontrar un complemento más útil, especialmente porque puede cambiar los temas más tarde y mantener fácilmente su complemento, y puede activarlo y desactivarlo a voluntad.

Puede crear tantos complementos como desee si desea agregar más funciones más adelante.

el proceso es justamente similar a la creación de un tema anterior. En lugar de crear la nueva carpeta en el wp-content/themes carpeta, pégala wp-content/plugins en cambio. Luego, crea un .php archivo en esa carpeta (ej. myplugin.phppero puede llamarlo como quiera) y agregue lo siguiente en la parte superior del archivo:

<?php
/*
Plugin Name: My Toolset
*/

(Puede agregar información adicional si lo desea, más información está disponible en esta página del Manual de complementos de WordPress)

Debajo de esto, simplemente coloque exactamente el mismo add_action() código mencionado en la opción de tema anterior.

Guarde su archivo, vaya a Complementos en su administrador de WordPress, busque su nuevo complemento en la lista, haga clic en Activar y verifique su sitio.

Para obtener más antecedentes y consejos sobre complementos, puede ver esta página en el Codex de WordPress.

¿Ha sido útil esta solución?