• WORDPRESS, inject custom-fields into a custom HTML widget from a plugin


    Though recommended, time and time again. I did not want to register a new widget, or muck about with a child-theme. Just want to inject some data from a posts custom-field into any custom HTML widget I wanted. I know, it would have been easier with a javascript request followed by an append, but I have this little plugin that I toy with you see, and would like to implement that ability there.

    Could not find what I was looking for, when hunting for examples. Perhaps not asking the right questions, the likely reason, since my Wordpress-fu leaves a lot to be desired. Eventually came up with the following.

    Embed an element in the custom html widget using your preferred identifier. In my case:

    <span id="my-custom-post-field-1"></span>

    Add a new filter to your plugins library, in my case it's a class:

    add_filter('widget_text', array($this,'mycustompostthing'),10,3);

    Add a new function to check the text for that identifier, then inject at will.


        function mycustompostthing( $text,$inst,$args ) {
            global $post;
            if( strpos($text, 'my-custom-post-field-1')){
                $upsell = $this->get_upsell ( $post, 'my-custom-post-field-1' );
                if($upsell){
                    $text = $upsell .'<div class="newline"></div>'. $text;
                }          
            }
            return $text;
        }

    And that's it. Not the best solution, but gets the job done.
    Dump located here: https://github.com/dreaddymck/dump/blob/master/wordpress-inject-custom-fields-example

  • You might also like