Easy code troubleshooting in wordpress












2















Is there an easy and standard way to debug our code in wordpress plugins?
I want to print some variables in a function that runs when a certain things happen.
Is there a wordpress way to save this in a file or at least see it?










share|improve this question



























    2















    Is there an easy and standard way to debug our code in wordpress plugins?
    I want to print some variables in a function that runs when a certain things happen.
    Is there a wordpress way to save this in a file or at least see it?










    share|improve this question

























      2












      2








      2


      1






      Is there an easy and standard way to debug our code in wordpress plugins?
      I want to print some variables in a function that runs when a certain things happen.
      Is there a wordpress way to save this in a file or at least see it?










      share|improve this question














      Is there an easy and standard way to debug our code in wordpress plugins?
      I want to print some variables in a function that runs when a certain things happen.
      Is there a wordpress way to save this in a file or at least see it?







      debug troubleshooting






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 4 hours ago









      AmiritionAmirition

      598




      598






















          3 Answers
          3






          active

          oldest

          votes


















          3














          The best way to troubleshoot/debug your PHP code for WordPress is to use the XDEBUG debugger for PHP coupled with an IDE/editor that can leverage XDEBUG.



          By far my favorite IDE for PHP/XDEBUG is PhpStorm (best money I have ever spent), but you can use for free on the bleeding edge with their EAP (Early Access Program). You can also use the free VSCode with XDEBUG.



          Here is a great video showing what it looks like to use XDEBUG & PhpStorm. You can start at the 18:00 point because everything before that is talking and slides.



          You will also need a local development setup that supports XDEBUG. Several years ago I was frustrated with how difficult it was to get XDEBUG configured correctly so I had my team develop WPLib Box which pre-configures XDEBUG and thus makes using XDEBUG trivally easy. You can download WPLib Box from GitHub, use for free, and get help via our Slack.



          I like to say using PhpStorm/XDEBUG/WPlib Box gives me WordPress superpowers. How else do you think I answered all the questions here at WPSE that I have? :-)



          That said, there are also other local development solutions such as VVV, Trellis, Chassis, Desktop Server, MAMP, DevilBox, LaraDock, Kalabox, Kusanagi and others you might try. But I am not sure how difficult it is to set up XDEBUG to work with any of these others anymore and I know firsthand XDEBUG works without any fuss when using WPLib Box.



          Hope this helps.






          share|improve this answer

































            2














            Just start with the following definitions in your config.php file:



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


            The first one sets your system into debug mode, the second one writes every notice into a log file saved into your wp-content directory. Script debug enables WordPress to use the uncompressed CSS and JS files (Maybe also interesting for writing Plugins). And Savequeries writes HTML-Comments at the bottom of the rendered HTML Output and will be used by Plugins I suggest you next.



            See the WordPress Plugin Directory for Debug Bar and extensions. There are a lot and there's a great chance that some of them are providing exactly what you need.



            If nothing helps you can write everytime



            print_r( $var );
            die();


            and look into the HTML sourcecode.






            share|improve this answer































              2














              Unfortunately there isn't really a standard developer logging API in WordPress. If you want to output your own data to a debug file (to prevent "headers already sent" errors) then you can simply use the standard PHP error_log function. Something simple like this will record the variable $data to the file debug.log in your plugins directory:



              $debugline = '['.date('y m d H:i:s', time()).'] '.print_r($data,true);
              $debugfilepath = dirname(__FILE__).'/debug.log';
              error_log($debugline, 3, $debugfilepath);





              share|improve this answer























                Your Answer








                StackExchange.ready(function() {
                var channelOptions = {
                tags: "".split(" "),
                id: "110"
                };
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function() {
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled) {
                StackExchange.using("snippets", function() {
                createEditor();
                });
                }
                else {
                createEditor();
                }
                });

                function createEditor() {
                StackExchange.prepareEditor({
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader: {
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                },
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                });


                }
                });














                draft saved

                draft discarded


















                StackExchange.ready(
                function () {
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fwordpress.stackexchange.com%2fquestions%2f330654%2feasy-code-troubleshooting-in-wordpress%23new-answer', 'question_page');
                }
                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                3














                The best way to troubleshoot/debug your PHP code for WordPress is to use the XDEBUG debugger for PHP coupled with an IDE/editor that can leverage XDEBUG.



                By far my favorite IDE for PHP/XDEBUG is PhpStorm (best money I have ever spent), but you can use for free on the bleeding edge with their EAP (Early Access Program). You can also use the free VSCode with XDEBUG.



                Here is a great video showing what it looks like to use XDEBUG & PhpStorm. You can start at the 18:00 point because everything before that is talking and slides.



                You will also need a local development setup that supports XDEBUG. Several years ago I was frustrated with how difficult it was to get XDEBUG configured correctly so I had my team develop WPLib Box which pre-configures XDEBUG and thus makes using XDEBUG trivally easy. You can download WPLib Box from GitHub, use for free, and get help via our Slack.



                I like to say using PhpStorm/XDEBUG/WPlib Box gives me WordPress superpowers. How else do you think I answered all the questions here at WPSE that I have? :-)



                That said, there are also other local development solutions such as VVV, Trellis, Chassis, Desktop Server, MAMP, DevilBox, LaraDock, Kalabox, Kusanagi and others you might try. But I am not sure how difficult it is to set up XDEBUG to work with any of these others anymore and I know firsthand XDEBUG works without any fuss when using WPLib Box.



                Hope this helps.






                share|improve this answer






























                  3














                  The best way to troubleshoot/debug your PHP code for WordPress is to use the XDEBUG debugger for PHP coupled with an IDE/editor that can leverage XDEBUG.



                  By far my favorite IDE for PHP/XDEBUG is PhpStorm (best money I have ever spent), but you can use for free on the bleeding edge with their EAP (Early Access Program). You can also use the free VSCode with XDEBUG.



                  Here is a great video showing what it looks like to use XDEBUG & PhpStorm. You can start at the 18:00 point because everything before that is talking and slides.



                  You will also need a local development setup that supports XDEBUG. Several years ago I was frustrated with how difficult it was to get XDEBUG configured correctly so I had my team develop WPLib Box which pre-configures XDEBUG and thus makes using XDEBUG trivally easy. You can download WPLib Box from GitHub, use for free, and get help via our Slack.



                  I like to say using PhpStorm/XDEBUG/WPlib Box gives me WordPress superpowers. How else do you think I answered all the questions here at WPSE that I have? :-)



                  That said, there are also other local development solutions such as VVV, Trellis, Chassis, Desktop Server, MAMP, DevilBox, LaraDock, Kalabox, Kusanagi and others you might try. But I am not sure how difficult it is to set up XDEBUG to work with any of these others anymore and I know firsthand XDEBUG works without any fuss when using WPLib Box.



                  Hope this helps.






                  share|improve this answer




























                    3












                    3








                    3







                    The best way to troubleshoot/debug your PHP code for WordPress is to use the XDEBUG debugger for PHP coupled with an IDE/editor that can leverage XDEBUG.



                    By far my favorite IDE for PHP/XDEBUG is PhpStorm (best money I have ever spent), but you can use for free on the bleeding edge with their EAP (Early Access Program). You can also use the free VSCode with XDEBUG.



                    Here is a great video showing what it looks like to use XDEBUG & PhpStorm. You can start at the 18:00 point because everything before that is talking and slides.



                    You will also need a local development setup that supports XDEBUG. Several years ago I was frustrated with how difficult it was to get XDEBUG configured correctly so I had my team develop WPLib Box which pre-configures XDEBUG and thus makes using XDEBUG trivally easy. You can download WPLib Box from GitHub, use for free, and get help via our Slack.



                    I like to say using PhpStorm/XDEBUG/WPlib Box gives me WordPress superpowers. How else do you think I answered all the questions here at WPSE that I have? :-)



                    That said, there are also other local development solutions such as VVV, Trellis, Chassis, Desktop Server, MAMP, DevilBox, LaraDock, Kalabox, Kusanagi and others you might try. But I am not sure how difficult it is to set up XDEBUG to work with any of these others anymore and I know firsthand XDEBUG works without any fuss when using WPLib Box.



                    Hope this helps.






                    share|improve this answer















                    The best way to troubleshoot/debug your PHP code for WordPress is to use the XDEBUG debugger for PHP coupled with an IDE/editor that can leverage XDEBUG.



                    By far my favorite IDE for PHP/XDEBUG is PhpStorm (best money I have ever spent), but you can use for free on the bleeding edge with their EAP (Early Access Program). You can also use the free VSCode with XDEBUG.



                    Here is a great video showing what it looks like to use XDEBUG & PhpStorm. You can start at the 18:00 point because everything before that is talking and slides.



                    You will also need a local development setup that supports XDEBUG. Several years ago I was frustrated with how difficult it was to get XDEBUG configured correctly so I had my team develop WPLib Box which pre-configures XDEBUG and thus makes using XDEBUG trivally easy. You can download WPLib Box from GitHub, use for free, and get help via our Slack.



                    I like to say using PhpStorm/XDEBUG/WPlib Box gives me WordPress superpowers. How else do you think I answered all the questions here at WPSE that I have? :-)



                    That said, there are also other local development solutions such as VVV, Trellis, Chassis, Desktop Server, MAMP, DevilBox, LaraDock, Kalabox, Kusanagi and others you might try. But I am not sure how difficult it is to set up XDEBUG to work with any of these others anymore and I know firsthand XDEBUG works without any fuss when using WPLib Box.



                    Hope this helps.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited 3 hours ago

























                    answered 3 hours ago









                    MikeSchinkelMikeSchinkel

                    34k14104126




                    34k14104126

























                        2














                        Just start with the following definitions in your config.php file:



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


                        The first one sets your system into debug mode, the second one writes every notice into a log file saved into your wp-content directory. Script debug enables WordPress to use the uncompressed CSS and JS files (Maybe also interesting for writing Plugins). And Savequeries writes HTML-Comments at the bottom of the rendered HTML Output and will be used by Plugins I suggest you next.



                        See the WordPress Plugin Directory for Debug Bar and extensions. There are a lot and there's a great chance that some of them are providing exactly what you need.



                        If nothing helps you can write everytime



                        print_r( $var );
                        die();


                        and look into the HTML sourcecode.






                        share|improve this answer




























                          2














                          Just start with the following definitions in your config.php file:



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


                          The first one sets your system into debug mode, the second one writes every notice into a log file saved into your wp-content directory. Script debug enables WordPress to use the uncompressed CSS and JS files (Maybe also interesting for writing Plugins). And Savequeries writes HTML-Comments at the bottom of the rendered HTML Output and will be used by Plugins I suggest you next.



                          See the WordPress Plugin Directory for Debug Bar and extensions. There are a lot and there's a great chance that some of them are providing exactly what you need.



                          If nothing helps you can write everytime



                          print_r( $var );
                          die();


                          and look into the HTML sourcecode.






                          share|improve this answer


























                            2












                            2








                            2







                            Just start with the following definitions in your config.php file:



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


                            The first one sets your system into debug mode, the second one writes every notice into a log file saved into your wp-content directory. Script debug enables WordPress to use the uncompressed CSS and JS files (Maybe also interesting for writing Plugins). And Savequeries writes HTML-Comments at the bottom of the rendered HTML Output and will be used by Plugins I suggest you next.



                            See the WordPress Plugin Directory for Debug Bar and extensions. There are a lot and there's a great chance that some of them are providing exactly what you need.



                            If nothing helps you can write everytime



                            print_r( $var );
                            die();


                            and look into the HTML sourcecode.






                            share|improve this answer













                            Just start with the following definitions in your config.php file:



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


                            The first one sets your system into debug mode, the second one writes every notice into a log file saved into your wp-content directory. Script debug enables WordPress to use the uncompressed CSS and JS files (Maybe also interesting for writing Plugins). And Savequeries writes HTML-Comments at the bottom of the rendered HTML Output and will be used by Plugins I suggest you next.



                            See the WordPress Plugin Directory for Debug Bar and extensions. There are a lot and there's a great chance that some of them are providing exactly what you need.



                            If nothing helps you can write everytime



                            print_r( $var );
                            die();


                            and look into the HTML sourcecode.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 3 hours ago









                            chrisbergrchrisbergr

                            635




                            635























                                2














                                Unfortunately there isn't really a standard developer logging API in WordPress. If you want to output your own data to a debug file (to prevent "headers already sent" errors) then you can simply use the standard PHP error_log function. Something simple like this will record the variable $data to the file debug.log in your plugins directory:



                                $debugline = '['.date('y m d H:i:s', time()).'] '.print_r($data,true);
                                $debugfilepath = dirname(__FILE__).'/debug.log';
                                error_log($debugline, 3, $debugfilepath);





                                share|improve this answer




























                                  2














                                  Unfortunately there isn't really a standard developer logging API in WordPress. If you want to output your own data to a debug file (to prevent "headers already sent" errors) then you can simply use the standard PHP error_log function. Something simple like this will record the variable $data to the file debug.log in your plugins directory:



                                  $debugline = '['.date('y m d H:i:s', time()).'] '.print_r($data,true);
                                  $debugfilepath = dirname(__FILE__).'/debug.log';
                                  error_log($debugline, 3, $debugfilepath);





                                  share|improve this answer


























                                    2












                                    2








                                    2







                                    Unfortunately there isn't really a standard developer logging API in WordPress. If you want to output your own data to a debug file (to prevent "headers already sent" errors) then you can simply use the standard PHP error_log function. Something simple like this will record the variable $data to the file debug.log in your plugins directory:



                                    $debugline = '['.date('y m d H:i:s', time()).'] '.print_r($data,true);
                                    $debugfilepath = dirname(__FILE__).'/debug.log';
                                    error_log($debugline, 3, $debugfilepath);





                                    share|improve this answer













                                    Unfortunately there isn't really a standard developer logging API in WordPress. If you want to output your own data to a debug file (to prevent "headers already sent" errors) then you can simply use the standard PHP error_log function. Something simple like this will record the variable $data to the file debug.log in your plugins directory:



                                    $debugline = '['.date('y m d H:i:s', time()).'] '.print_r($data,true);
                                    $debugfilepath = dirname(__FILE__).'/debug.log';
                                    error_log($debugline, 3, $debugfilepath);






                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered 3 hours ago









                                    majickmajick

                                    3,7091622




                                    3,7091622






























                                        draft saved

                                        draft discarded




















































                                        Thanks for contributing an answer to WordPress Development Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid



                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.


                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function () {
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fwordpress.stackexchange.com%2fquestions%2f330654%2feasy-code-troubleshooting-in-wordpress%23new-answer', 'question_page');
                                        }
                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        How to make a Squid Proxy server?

                                        Is this a new Fibonacci Identity?

                                        19世紀