¿Hay algún archivo functions.php global que funcione para cualquier tema?

10

¿Existe algún tipo de archivo de funciones.php global que funcione para cualquier tema?

El problema está aquí:

Cuando cambio un archivo functions.php en cualquier tema, necesito encargarme de dos cambios: Primero, debo ocuparme de las actualizaciones de ese tema. En segundo lugar, tengo que ocuparme de cambiar el tema del sitio.

Entonces, en lugar de realizar cambios en el archivo functions.php de un tema, ¿es posible realizar cambios en un archivo functions.php que sea independiente de cualquier tema?

    
pregunta Mert Nuhoglu 09.10.2011 - 17:07

5 respuestas

14

La diferencia entre el código temático y el código no temático es más organizativa que técnica. Cualquier código que esté activo contribuye al entorno resultante, no importa de dónde se cargue.

Hay varios lugares desde donde se carga el código, que no forman parte del núcleo de WordPress:

  • wp-config.php archivo de configuración
  • tema activo (y su principal para temas secundarios)
  • complementos activos
  • debe usar complementos
  • drop-ins (son algo avanzados y sirven para propósitos muy específicos)

El lugar típico para su propio código, que no debería ser parte del tema, es crear un complemento. Otros enfoques no se benefician del caso genérico, pero la interfaz de pérdida (administración a través del área de administración) y los eventos técnicos (activación / desactivación / desinstalación) del complemento normal.

    
respondido por el Rarst 16.10.2011 - 22:50
6

Bueno, eso es un problema real y muchas personas lo enfrentan cuando cambian de tema, pero hay soluciones simples.

agrega esa función a una nueva página, no funciones.php y asígnele un nombre único, por ejemplo, yousitename + timestamp o lo que quiera, pero cree una carpeta única con el mismo nombre que se guardó en un archivo comprimido y cárguela como un complemento, así que seguramente funcionará hasta que la deshabilite.

Comprender qué plugin es para lo que no falta para darle nombre a ese plugin como:

/*
Plugin Name: XYZ
*/
    
respondido por el Mohit Bumb 09.10.2011 - 19:06
3

Como una adición a la respuesta de @MBTheDeveloper.

Otras opciones serían:

  1. Cree un tema secundario para su tema actual y use el archivo functions.php de este (esta es la "mejor práctica").
  2. Use include en el archivo php de la función de temas y cargue un archivo custom-function.php que contenga su código personalizado.
respondido por el kaiser 09.10.2011 - 19:38
2

No hagas cambios específicos a tu sitio en el archivo functions.php del tema.

En su lugar, crea un complemento específico del sitio. Me gusta usar el nombre de dominio del sitio, como "ottopress.com". Luego coloque sus fragmentos en ese complemento y déjelo activo solo en ese sitio.

Alternativamente, cuando tenga un fragmento de cambios relacionados, cree un complemento específico solo para ellos. Eso le da la opción de activar / desactivar los bits de código relacionados según sea necesario.

    
respondido por el Otto 17.10.2011 - 00:10
2

Algunas explicaciones

Primero debe comprender el propósito de functions.php en un tema. Functions.php es básicamente un archivo de complemento sin ningún nombre que, si está presente, se carga automáticamente con Wordpress. Wordpress carga el function.php de su tema actual para las páginas de aplicaciones para usuario de wordpress y también las páginas de administración (admin).

No hay diferencia entre un complemento y functions.php excepto que los complementos tienen nombre y pueden activarse / desactivarse independientemente de otros complementos y temas. El funtions.php se adjunta con su tema actual y si cambia a otro tema, Wordpress usa las funciones del nuevo tema.php y no sus funciones antiguas.php con modificaciones personalizadas.

Las actualizaciones del tema también sobrescriben functions.php y no hay forma de evitarlo, incluso si coloca sus modificaciones personalizadas en archivos de código separados y lo incluye en su fucntions.php, tendrá que agregar esa línea de inclusión después de cada actualización. .

Generalmente, el tipo de código que debe ir en functions.php:

  • funciones que se utilizan en los archivos de plantilla de su tema.
  • opciones de tema
  • barras laterales
  • menús de navegación
  • formatos de publicación
  • publicar miniaturas
  • cualquier código que solo esté relacionado con el tema actual.

Como desea conservar sus modificaciones personalizadas incluso si cambia de tema. Debido a que el tema secundario no funcionará en este caso, ya que cambiará el tema y no se utilizarán las funciones.php del tema secundario.

La solución

La única solución recomendada por @Otto es crear un archivo de complemento. El enfoque que puede tomar para crear su complemento específico para el sitio es crear una carpeta con su nombre de sitio en 'wp-content / plugins' y crear archivos de complemento en ella.

¿Por qué archivos de plugin? y no un solo archivo de complemento.

Agrupe las funcionalidades del sitio relacionadas con el código en archivos de complementos separados y no olvide agregar el encabezado del complemento en todos Sus archivos de complementos para que sean reconocidos por Wordpress como complementos separados. Luego tendrá la capacidad de activar / desactivar diferentes características / funcionalidades de su sitio sin romper todo.

    
respondido por el Hameedullah Khan 17.10.2011 - 12:25

Lea otras preguntas en las etiquetas