2017-04-17 76 views
0

你好我一直在处理这一整天,我只是无法弄清楚是什么原因导致这个问题,请帮助我。 我用一个按钮通过wordpress编辑器使用ajax调用了一个php文件。 此代码是在我的TinyMCE的按钮,文件调用PHP函数wordpress无法加载我的钩子

(function() { 
    tinymce.PluginManager.add('ImageSlider', function(editor, url) { 
function customfunction() { 
jQuery(document).ready(function($) { 
    var dir1 = "../wp-content/plugins/Midnight Image-Slider/MDslider.php"; 
    $.ajax({ 
     url: dir1, 
     success: function(data) { 
      $('.mce-window-body').append(data); 
     } 
    }) 
}) 
} 
editor.addButton('ImageSlider', { 
    title: 'My test button', 
    image: url + '/lion.jpg', 
    onclick: function(){ 
     editor.windowManager.open({ 
      title: 'Image slider', 
      width:800, 
      height:450, 
      body:[ 
      printCarousel(), 
       customfunction()     
      ], 
      onSubmit: function(e) { 
      } 
     }) 
    } 
}); 
}); 
})(); 

而当它调用PHP文件时,它给了我这个错误 WordPress的未捕获的错误:调用未定义功能 除非我写的需要WP-配置.php部分在php文件的顶部,然后错误消失,但它仍然没有加载任何wordpress钩子。正在显示

require_once(dirname(__FILE__).'../../../../wp-config.php'); 
add_action('init','loadFile'); 
function loadFile(){ 
echo 'hello world'; 
} 

的Hello World,只有当它是不是在功能,但我需要能够使用WP挂钩我觉得有些文件没有被加载。

回答

2

您的Ajax实现方法不符合WordPress标准。 WordPress的做Ajax实现很容易与wp_ajax_ & wp_ajax_no_prev_行动

,你可以在WordPress从

Custom ajax requests in wordpress

https://codex.wordpress.org/AJAX_in_Plugins

https://www.smashingmagazine.com/2011/10/how-to-use-ajax-in-wordpress/

+0

但AJAX探索更多关于Ajax实现不会被调用通过PHP,但通过这个JS文件,我会编辑我的代码无线th整个JS代码 –

+0

,以便当我点击我的按钮时,它调用这个函数加载一个PHP文件,但该文件似乎无法加载wordpress钩子 –

+0

您的整个代码是错误的。 如何在没有wp-load 的情况下访问WordPress'init'动作对wp-load进行探索。 并且不要通过在WordPress中添加PHP代码来创建复杂性。 已经让WordPress变得非常容易了 只是搜索WordPress的codex。 –