在functions.php中的Wordpress var_dump

时间:2015-03-06 17:49:40

标签: php wordpress

我需要在WP中的自定义函数过滤器中执行var_dump但是,结果显示在哪里?代码正常工作,因为我可以看到搜索结果结构与代码存在时的区别,而不是

    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;
}

3 个答案:

答案 0 :(得分:8)

尝试在var_dump之后立即杀死流程,这有助于我更容易地调试:

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

这样一来,如果var_dump之后的东西在var转储之上呈现,它就不会被它覆盖。

答案 1 :(得分:1)

shutdown挂钩可用于在关闭body标签之前进行渲染:

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 :(得分:0)

这里很好,很干净:

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()类似,但是更加简洁和格式化。

您可以传递无限数量的参数来进行测试,并且每个转储之间也将其分开。