在更改帖子的插件时,是否有AJAX调用的日志?

时间:2015-05-29 作者:Rich Jenks

更改页面的slug时(单击OK),会发出ajax调用,检查slug是否可用,如果不可用,则生成不同的slug。是否有人知道是否有任何日志记录,或者是否有任何方法可以调查发生的情况?即使知道这个过程的来源在哪里也会很有帮助。

我经历了一种非常奇怪的行为,即页面的段塞正在更改为不同帖子类型的帖子,但只有在段塞没有更改的情况下才会更改。这就好像我们已经确定这个弹头是它自己的复制品。

不知道如何调查这种行为,任何朝着正确方向捅的人都会受到赞赏!

2 个回复
最合适的回答,由SO网友:birgire 整理而成

如果我们在单击OK(确定)后跟踪Ajax过程,我们将沿着以下路径从core进入数据库:

Press OK on Edit slug:
 \\
  \\-> AJAX POST request with action=sample-permalink  Action:  wp_ajax_sample-permalink
     \\
      \\-> function: wp_ajax_sample_permalink()
         \\
          \\-> function: get_sample_permalink_html()   Filter:  get_sample_permalink_html
             \\
              \\-> function: get_sample_permalink()    Filters: get_sample_permalink, editable_slug
                 \\
                  \\-> function: wp_unique_post_slug() Filter:  wp_unique_post_slug
                     \\
                      \\-> db call: $wpdb->get_var() 
因此,您可以连接到其中一些过滤器,以检查/记录slug生成的情况。例如,您可以在wp_ajax_sample-permalink 措施:

add_action( \'wp_ajax_sample-permalink\', function()
{
    add_filter( \'somefilter\', function( $var )
    {
        // --> your EARLY logging part here <---

        return $var;
    }, 0 ); 

    add_filter( \'somefilter\', function( $var )
    {
        // --> your LATE logging part here <---

        return $var;
    }, PHP_INT_MAX ); 
} );
您可以在其中调整somefilter 满足您的需求。

SO网友:s_ha_dum

Firebug的“网络”选项卡应该会告诉你,或者像Wireshark这样更具攻击性的东西。

这个wp-admin/admin-ajax.php 文件确实激发admin_init 钩子以便您可以使用它创建日志。类似于:

function log_ajax_wpse_189827() {
  if (defined(DOING_AJAX) && TRUE === DOING_AJAX) {
    error_log("Howdy!");
  }
}
add_filter(\'admin_init\',\'log_ajax_wpse_189827\');

结束

相关推荐

Dynamic Custom Permalinks

我有一个场景,其目的是创建可以动态更改的自定义永久链接,例如:如果显示国家信息,则URL应为http://example.com/country-information如果显示特定国家的城市信息,则URL应如下所示http://example.com/country/city-information. 我怎样才能做到这一点?