更改页面的slug时(单击OK),会发出ajax调用,检查slug是否可用,如果不可用,则生成不同的slug。是否有人知道是否有任何日志记录,或者是否有任何方法可以调查发生的情况?即使知道这个过程的来源在哪里也会很有帮助。
我经历了一种非常奇怪的行为,即页面的段塞正在更改为不同帖子类型的帖子,但只有在段塞没有更改的情况下才会更改。这就好像我们已经确定这个弹头是它自己的复制品。
不知道如何调查这种行为,任何朝着正确方向捅的人都会受到赞赏!
更改页面的slug时(单击OK),会发出ajax调用,检查slug是否可用,如果不可用,则生成不同的slug。是否有人知道是否有任何日志记录,或者是否有任何方法可以调查发生的情况?即使知道这个过程的来源在哪里也会很有帮助。
我经历了一种非常奇怪的行为,即页面的段塞正在更改为不同帖子类型的帖子,但只有在段塞没有更改的情况下才会更改。这就好像我们已经确定这个弹头是它自己的复制品。
不知道如何调查这种行为,任何朝着正确方向捅的人都会受到赞赏!
如果我们在单击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
满足您的需求。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\');
我有一个场景,其目的是创建可以动态更改的自定义永久链接,例如:如果显示国家信息,则URL应为http://example.com/country-information如果显示特定国家的城市信息,则URL应如下所示http://example.com/country/city-information. 我怎样才能做到这一点?