Pregunta sobre Arreglando WordPress de Wordpress:

¿Qué causa este error «no escrito»?

Un usuario preguntó 👇

Tengo un tema personalizado que he estado usando durante años, en varios sitios.

Después de algunas actualizaciones menores y cambiar el nombre, mientras se activa, hay algunos errores de ‘No puedo volver a publicar’ en archivos inalterados (que funcionan perfectamente cuando se regresa a la versión anterior del tema y sitios otro usando la actualización del tema).

El problema solo ocurre con los archivos de funciones contenidos en la subcarpeta ‘admin’.

Este archivo está en el archivo functions.php:

function require_all_files($dir) {
foreach( glob( "$dir/*" ) as $path ) {
if ( preg_match( '/.php$/', $path ) ) {
require_once $path;  // it's a PHP file so just require it
}
elseif ( is_dir( $path ) ) {
require_all_files( $path );  // it's a subdir, so call the same function for this subdir
} } }
require_all_files( get_template_directory() . "/functions/" );

Y la carpeta ‘funciones’ contiene una subcarpeta ‘admin’.

Tengo este código y se ha configurado una carpeta / subcarpeta en cada uno de mis sitios (incluida la versión anterior del tema), y funciona bien excepto en uno.

Cuando se cambia el nombre de la subcarpeta ‘admin’, las cosas funcionan bien.

Estoy desconcertado.

Este tema fue modificado hace 2 años, 7 meses por.

(@ juan2machado)

Hace 2 años, 7 meses

Hola, @gulliver.

Para responder a su pregunta clave, ‘No se puede canjear’ es porque su función ya está definida, es posible que tenga la misma función definida en dos archivos diferentes, o se puede definir la misma función en dos lugares del mismo archivo.

Le sugiero que compruebe si la función está ahí. Si no, defínalo.

P.ej:

if (! function_exists (‘nombre_de_su_función’)) {

function name_of_your_function () {// su código}

}

¡Espero que ayude!

(@gulliver)

Hace 2 años, 7 meses

@ juan2machado… gracias.

Sí, sé que el motivo del mensaje ‘Anular publicación’ es que ya se ha utilizado) … y estoy familiarizado con estos, por ejemplo, cuando moví una función a un archivo diferente pero olvidé eliminar el caso original.

Pero, como se señaló, los archivos son idénticos a los archivos que uso en otros sitios, y no se recomiendan errores.

¡Y además, la referencia ‘declarada previamente’ es para el mismo archivo!

Por ejemplo, si creo un archivo de prueba (test.php), solo contiene este código:


<?php

function maintenance_mode()
{
if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
wp_die('<img src="/graphics/header/logo/1.png" />
<p><strong>Site temporarily offline for maintenance.</strong> </p>' );
} }
add_action( 'get_header', 'maintenance_mode' );

Desencadena un error ‘Error fatal: Maintenance_mode () (previamente declarado en [path to]/functions/admin/test.php:5) en [path to]/functions/admin/test.php en línea 8 ‘. Y, cuando cambio el nombre de esa carpeta ‘admin’, el error no aparece.

Además … cada función en la subcarpeta ‘admin’ desencadena un error de ‘no se puede redistribuir’, pero no si se cambia el nombre de esa carpeta. (Nuevamente, como se señaló, utilizo una estructura similar en mis otros sitios sin ningún problema).

Actualización: problema solucionado: mi error (¡por supuesto!).

La razón fue que no eliminé accidentalmente un archivo anterior que usaba código no recursivo (con una referencia codificada a ‘/ functions / admin /’) para incluir archivos de subcarpetas.

Esta respuesta fue modificada hace 2 años, 7 meses. Esta respuesta fue modificada hace 2 años, 7 meses. Esta respuesta fue modificada hace 2 años, 7 meses. Esta respuesta fue modificada hace 2 años, 7 meses.

(@ juan2machado)

Hace 2 años, 7 meses

Hola, @gulliver. ¡Eso es genial!

Documentelo para referencia futura. Por si acaso 😉

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.