Support » Plugins » Plugin mit Ajax-Request schlägt fehl

  • paetrick

    (@paetrick)


    Hallo,

    ich arbeite gerade an einem Plugin, mit der ich einige Ajax-Request behandeln möchte. Wenn ich aber den Request ausführe, bekomme ich die Fehlermeldung 404.

    Das Plugin hat 2 Dateien (function.php und script.js).

    function.php:

    
    function gfl_enqueuescripts() 
    {
    	wp_enqueue_script(
    		'gfl_search_js'
    		, '/wp-content/plugins/gfl_custom/script.js' 
    		, [
    			'jquery'	
    		]
    	);
    	
    	wp_localize_script(
    		'gfl_search_js'
    		, 'gfl_search'
    		, [
    			'ajaxurl' => admin_url('admin-ajax.php')
    		]
    		
    	);
    	
    }
    add_action('wp_enqueue_scripts', 'gfl_enqueuescripts');
    
    function count_records() 
    {
       	$response = array(
    	   'count' => 55,
    	   'status' => 'keine Einträge mit Query gefunden',
    	   'query' => [],
    	   'benefit' => []   
       	);
    	echo json_encode($response);
    	die();
    }
    add_action( 'wp_ajax_count_records', 'count_records' );
    add_action( 'wp_ajax_nopriv_count_records', 'count_records' );
    

    script.js:

    
    jQuery.ajax({
    			type: 'post',
    			url: 'gfl_search.ajax_url',
    			data: ({
    				action: 'count_records',
    				
    			}),
    			dataType: 'json',
    			success: function (res) {
    				console.log(res);
    				
    			}
    		});

    `

    Wenn ich das Ajax ausführe kommt in der Console beim Aufruf der JS : POST https://meine-url.de/gfl_search.ajax_url 404

    Wo ist hier mein Denkfehler?

    Danke und Gruß paetrick

    • Dieses Thema wurde geändert vor 1 Monat von paetrick.
Ansicht von 1 Antwort (von insgesamt 1)
  • Moderator Bego Mario Garde

    (@pixolin)

    Hallo @paetrick,

    wir möchten hier im Support-Forum Hilfe anbieten, wenn es bei der Nutzung von WordPress, Plugins und Themes Probleme gibt. Für Programmierfragen bist du auf https://wordpress.stackexchange.com besser aufgehoben.

    In deinem Code fällt mir kleines Problem auf: wenn du in einem Plugin eine JavaScript-Datei einbinden möchtest, solltest du keinen relativen Pfad mit wp-content benutzen. Anwender können in der wp-config.php den Pfad für die Dateien, die üblicherweise in wp-content abgelegt werden, ändern (Moving wp-content folder). In dem Moment passt dieser relative Pfad nicht mehr. Die Funktion sollte also so aussehen:

    wp_enqueue_script(
      'gfl_search_js', 
      plugin_dir_url( __FILE__ ) . 'script.js',
      array( 'jquery' ),
    );

    Zu der AJAX-Funktion kann ich dir leider nicht viel sagen.
    Wie gesagt: frag mal auf Stackexchange nach.

Ansicht von 1 Antwort (von insgesamt 1)