WordPress-debuggausta hankalissa paikoissa

WordPress-debuggausta on helppo tehdä, kun pääsee käsiksi virhelokeihin ja komentoriviin. Aina ei pääse, jolloin saakin raapia päätään sen suhteen, miten päästä esimerkiksi ajax-prosessien toimintaan.

Silloin auttaa error_log()-komennon mahdollisuus lähettää tiedot virhelokin sijasta sähköpostiin:

error_log( 'Virheilmoitus', 1, 'mikko@example.com' );

Tämä lähettäisi virheviestin sähköpostilla osoitteeseen mikko@example.com. Näppärää! Vaan entäs jos sähköpostiakaan ei voi lähettää? Siihenkin on näppärä niksi.

Luo tyhjä sivu tai artikkeli ja nappaa sen ID-numero talteen. Oletetaan numeroksi vaikka 123. Sitten vain lisätään tällainen funktio:

function virheloki_artikkeliin( $viesti ) {
  $_post = get_post( 123 );
  $data = array(
    'ID'           => $_post->ID,
    'post_content' => $_post->post_content . "\n" . $viesti,
  );
  wp_update_post( $data );
}

// Jos sattumalta debuggaat Relevanssi-asioita, lisää myös tämä:
add_filter( 'relevanssi_indexing_restriction', 'ei_testijuttua_indeksiin' );
function ei_testijuttua_indeksiin( $restriction ) {
  $restriction['mysql'] .= " AND post.ID != 123 ";
  $restriction['reason'] .= ' Testijuttu.';
  return $restriction;
}

Tämän jälkeen voit logata vaikkapa näin:

add_filter( 'relevanssi_indexing_data', 'indeksointitesti', 10, 2 );
function indeksointitesti( $data, $_post ) {
  virheloki_artikkeliin( 'Indeksoidaan artikkelia ' . $_post->ID );
  return $data;
}

Virheilmoitukset tulostuvat nyt siististi artikkelin 123 sisältöön. Sisältöä voit tarkastella ja nollata näppärästi WordPressin artikkelieditorista.

Vastaa

Sähköpostiosoitettasi ei julkaista.

This site uses Akismet to reduce spam. Learn how your comment data is processed.