O arquivo de log de erros (debug.log) pode ser usado como estratégia para controle de ações de um site em WordPress. Situações críticas do Tema, permissões do Plugin e o comportamento do usuário diante do site pode ser arquivado dentro do arquivo de log para verificações futuras.

Esse código faz parte da série de snippets “Erros no WordPress”. A proposta visa manipular e trabalhar com todos os tipos de erros no WordPress de modo organizado a fim de deixar o Tema e o Plugin em que se está trabalhando em perfeito funcionamento.

Antes de fazer uso do arquivo de log do WordPress é preciso ativar o debug no arquivo wp-config.php, bem como o comportamento dele de permitir o registro dos erros em um arquivo:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

Um exemplo prático para fazer uso desse arquivo de log é verificar as tentativas de acesso a posts privados do seu WordPress. Em geral esses posts não são listados para usuários deslogados, então caso exista um volume muito grande de requisições a essas URL’s algo pode estar acontecendo de errado. Abaixo está demonstrada a verificação para todos os conteúdos do tipo post.

add_action( 'wp', 'fn_user_logged' );

function fn_user_logged()
{
    $path = get_query_var( 'name' );
    $p = get_page_by_path( $path, OBJECT, 'post' );
    if ( !is_a( $p, 'WP_Post' ) )
        return false;

    $log = '';
    if ( !is_user_logged_in() && ( $p->post_status == 'private' ) )
        $log = sprintf(
            'Usuário não logado tentando acessar o post [%d] "%s"',
            $p->ID, $p->post_title
        );

    if ( $log )
        error_log( $log );
}