Мне нужно выполнить var_dump в пользовательском фильтре функций в WP, но где показаны результаты? Код работает, потому что я вижу разницу в структуре результатов поиска, когда код присутствует, а не

    add_filter('relevanssi_hits_filter', 'products_first');
function products_first($hits) {
    $types = array();

    $types['section1'] = array();
    $types['section2'] = array();
    $types['section3'] = array();
    $types['section4'] = array();

    // Split the post types in array $types
    if (!empty($hits)) {
        foreach ($hits[0] as $hit) {
            array_push($types_1[$hit->post_type], $hit);
        }
    }

    // Merge back to $hits in the desired order
    var_dump($types);
    $hits[0] = array_merge($types['section1'], $types['section2'], $types['section3'], $types['section4']);
    return $hits;
}
9
acctman 6 Мар 2015 в 20:49

3 ответа

Лучший ответ

Попробуйте убить поток сразу после var_dump, это обычно помогает мне облегчить xdebug:

var_dump($types);
die("products_first_ends");

Таким образом, если что-то после вашего var_dump рендерится поверх дампа var, оно не будет им покрыто.

14
Arka 6 Мар 2015 в 18:37

Вот что-то хорошее и чистое:

if(!function_exists('wp_dump')) :
    function wp_dump(){
        if(func_num_args() === 1)
        {
            $a = func_get_args();
            echo '<pre>', var_dump( $a[0] ), '</pre><hr>';
        }
        else if(func_num_args() > 1)
            echo '<pre>', var_dump( func_get_args() ), '</pre><hr>';
        else
            throw Exception('You must provide at least one argument to this function.');
    }
endif;

Он работает так же, как var_dump(), но более чище и отформатирован.

Вы можете передавать неограниченное количество аргументов для тестирования, а также разделять их между каждым дампом.

0
Ivijan Stefan Stipić 24 Окт 2020 в 13:38

Можно использовать ловушку shutdown, добавьте этот код в functions.php:

function custom_dump($anything){
  add_action('shutdown', function () use ($anything) {
    echo "<div style='position: absolute; z-index: 100; left: 30px; bottom: 30px; right: 30px; background-color: white;'>";
    var_dump($anything);
    echo "</div>";
  });
}
2
Narek Malkhasyan 3 Янв 2020 в 11:32