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. Pakolliset kentät on merkitty *

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