Solución:
Habilitar la depuración
WordPress tiene constantes definidas en wp-config.php
donde puede imprimir errores en la pantalla y registrarlos en un archivo separado ubicado /wp-content/debug.log
. Se parece a esto:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true );
define( 'WP_DEBUG_LOG', true );
A continuación, puede imprimir su propia información en el registro de depuración en un punto específico y averiguar exactamente dónde (o si la función está siendo golpeada) la función está fallando:
function write_here_featured_image_upload() {
error_log( 'Made it into the Ajax function safe and sound!' );
/** ... Rest of your code ... **/
}
Compruebe la consola de herramientas de desarrollo
Casi todos los navegadores en la actualidad tienen herramientas de desarrollo y una consola a la que se envían los errores de Javascrpit. Si ve un error en la consola de Dev Tools, primero deberá solucionarlo.
En cuanto a una posible solución, tiene este condicional que le impide ejecutar ajax en el front-end del sitio web:
if ( is_admin() ) {
add_action( 'wp_ajax_write_here_img_upload', 'write_here_featured_image_upload' );
add_action( 'wp_ajax_nopriv_write_here_img_upload', 'write_here_featured_image_upload' );
}
La función is_admin()
le dice a WordPress que solamente ejecute esas acciones en cualquier momento en el Panel de administración / Panel de control para que nunca vea que suceda nada en la interfaz de su sitio web. Intente eliminar el condicional y simplemente agregue la acción como está:
add_action( 'wp_ajax_write_here_img_upload', 'write_here_featured_image_upload' );
add_action( 'wp_ajax_nopriv_write_here_img_upload', 'write_here_featured_image_upload' );