assorted art tools arranged on a table

OpenHook, The Best Customization Manager Plugin for WordPress

You’re a self-host­ed Word­Press blog­ger, and you’ve final­ly picked out a beau­ti­ful theme for your site — that’s a tough feat, one I cer­tain­ly strug­gle with — and now it’s time to cus­tomize your site to fit your con­tent and your per­son­al­i­ty. There are a vari­ety of ways to go about doing that, but… how? Even for an expe­ri­enced user, sim­ple cus­tomiza­tions that typ­i­cal­ly require mul­ti­ple steps, includ­ing cre­at­ing a plu­g­in or child theme, can be tedious. But what if there is an eas­i­er alternative?

I want to intro­duce you to a two-part sys­tem so you’ll under­stand the pow­er of what I have to share with you.

Hooks and Actions

Meet the hooks and actions sys­tem. Word­Press has numer­ous hooks, or cus­tomiza­tion points, through­out its sys­tem, into which you can eas­i­ly add your own actions, or cus­tomiza­tions. Themes (and even plu­g­ins) can have their own hooks, and some themes cer­tain­ly have many more than others.

Let’s look at a very basic exam­ple to see how these work. A com­mon cus­tomiza­tion which you might want to make is to add your copy­right state­ment to the foot­er of your site. In many themes, you can accom­plish by adding your action (in this case, your copy­right text) to the wp_footer hook. The code would look like this:

function custom_add_copyright_statement() {
 echo '<p>Copyright &copy; 1603, William Shakespeare</p>';
add_action( 'wp_footer', 'custom_add_copyright_statement' );

Decent­ly sim­ple, right? But what if we could make that sim­pler? That’s where my free Word­Press plu­g­in, Open­Hook, comes into play.

OpenHook, the Customization Manager for WordPress

What is Open­Hook? In short, Open­Hook is a Word­Press plu­g­in that stream­lines the process of adding cus­tomiza­tions to your Word­Press site! But wait, there’s more!


  • Cus­tomize the hooks present in your favorite themes! 
    • NEW! Define any hook you want with­in Open­Hook and add an action to it! In addi­tion to the fol­low­ing themes which Open­Hook sup­ports explic­it­ly, you can now use Open­Hook to cus­tomize ANY hook (even some­thing as arcane as theme_hook_before_meta_987) in ANY theme or plu­g­in that has ANY hooks, from Word­Press’ bare min­i­mum hooks to hooks that are dynam­i­cal­ly cre­at­ed and are as infi­nite­ly diverse as your site can be!
    • Hooks are explic­it­ly enabled for the fol­low­ing themes, but you’re by no means lim­it­ed to these alone! 
      • Flat (defunct?)
      • Head­way
      • K2 (defunct? /​/​ actions cre­at­ed with the K2 Hook Up plu­g­in can be imported)
      • The­sis 1.8.x (defunct)
      • Any theme that sup­ports Theme Hook Alliance hooks 
  • Open­Box, a PHP-friend­ly “box” for use in cus­tomiz­ing The­sis 2 (defunct)
  • Quick access to the head­er and foot­er hooks of WordPress
  • All hooks can be cus­tomized with text, HTML/​CSS/​JavaScript, PHP, or shortcodes
  • All actions cre­at­ed with Open­Hook can be selec­tive­ly disabled
  • A vari­ety of actions already present in Flat, The­sis 1.8.x, and Word­Press can be selec­tive­ly disabled
  • Hook visu­al­iza­tion allows you to see exact­ly where each hook is fired on the front-end of your site
  • Short­codes
    • , for mask­ing email address­es from some spam robots
    • [glob­al], which makes use of cus­tom fields on a draft page in order to pro­vide a library of reusable strings
    • , an admin-only short­code for includ­ing PHP code with­in posts 
  • Abil­i­ty to dis­able all shortcodes
  • Dis­play of phpinfo() in the admin panel
  • Options man­age­ment, includ­ing tools to upgrade from Open­Hook 2 and to unin­stall (delete) all Open­Hook options
  • Only users with the edit_themes per­mis­sion may access Open­Hook or its fea­tures. If enabled by such a user, oth­er users may use or [global] short­codes in their entries as well.


  • An instal­la­tion of Word­Press 4.1 or new­er, naturally
  • The exec func­tion must not be dis­abled by your host if you plan to use Open­Hook to add PHP customizations

Open­Hook may work with old­er ver­sions, but giv­en the ease with which both of those soft­wares can be updat­ed, you real­ly, real­ly are encour­aged to stay up-to-date!


Open­Hook is avail­able from the Word­Press plu­g­in repos­i­to­ry, and so can be installed auto­mat­i­cal­ly from with­in your blog’s admin­is­tra­tion panel.

If you must do or just pre­fer the man­u­al method, Open­Hook is installed just like any oth­er Word­Press plu­g­in.


Vis­it the Word­Press plu­g­ins repos­i­to­ry to down­load the lat­est ver­sion!


For sup­port inquiries, please use the Con­tact pan­el with­in the Open­Hook itself, the plu­g­in repos­i­to­ry sup­port page, or the com­ments below!


Open­Hook devel­op­ment has been sup­port­ed by the fol­low­ing gen­er­ous individuals:

Donate to Further Development

If you would like to sup­port Open­Hook devel­op­ment, you may do so in one of two ways. The sim­plest way would be a mon­e­tary dona­tion via PayPal:

Or you can buy me some­thing direct­ly from my wish list, there­by sav­ing me the trouble!

Open­Hook is released under the GPL and was both inspired and based upon K2 Hook Up.



  • [fixed] load_plugin_textdomain() changed to prop­er­ly ref­er­ence the /languages direc­to­ry (thanks pm1932)
  • [changed] Local­iza­tion name­space is now thesis-openhook to con­form to Word­Press’ guide­line that this name­space match Open­Hook’s slug in the plu­g­ins repos­i­to­ry (see
  • [changed] Author links updat­ed to reflect cur­rent domain and Twit­ter account


  • [added] Abil­i­ty to define cus­tom hooks and to then add actions to them, effec­tive­ly open­ing Open­Hook sup­port to all hooks across all Word­Press themes!
  • [added] New themes: K2
  • [added] Abil­i­ty to spec­i­fy pri­or­i­ties on actions
  • [added] Access to the Word­Press hook comment_form
  • [added] Include Face­book “like” but­ton in admin pan­el sidebar
  • [fixed] Con­tact form link now works
  • [fixed] Aster­isks denot­ing that a hook has cus­tomiza­tions added to it are now more accurate
  • [fixed] Open­Hook ver­sion and the Flat and Theme Hook Alliance hook options are now prop­er­ly delet­ed when delet­ing Open­Hook options
  • [fixed] OpenHook::upgrade()‘s “is an upgrad­ed need­ed?” checks now actu­al­ly work, pre­vent­ing upgrade code from pro­cess­ing on every page load
  • [fixed] More WP_DEBUG notices tak­en care of
  • [changed] Open­Hook admin pan­els are more respon­sive on small­er screens
  • [changed] Only one the­me’s actions may be enabled at one time, sav­ing proces­sor pow­er and pre­vent­ing hook name conflicts
  • [changed] Explic­it­ly adhere to seman­tic ver­sion­ing going forward
  • [changed] Open­Hook CSS is now minified
  • [changed] File struc­ture organized
  • [changed] Sim­pli­fied admin pan­el tabs to only high­light active action groups


  • [added] Flat hooks
  • [added] Theme Hook Alliance hooks
  • [fixed] Open­Box is now com­pat­i­ble with The­sis 2.1.x
  • [changed] Var­i­ous text and links through­out Open­Hook admin panel
  • [changed] Opti­mized var­i­ous bits of code, bring­ing it in line with Word­Press cod­ing standards
  • [changed] Admin side­bar no longer appears on the serv­er info page


  • [fixed] Fixed bro­ken class calls in options man­age­ment functions


  • [added] Now sup­port­ing Head­way theme hooks!
  • [added] Short­codes man­ag­er introduced!
  • [added] Users can now choose whether all hook pan­els are dis­played or just one at a time
  • [added] PHP short­code — Arbi­trary PHP code in your posts! (Admin users only.)
  • [added] Email short­code — Encodes email address­es for use in posts to thwart harvesters
  • [added] Glob­al short­code — Take advan­tage of cus­tom fields on a draft post to cre­ate a library of strings which may be used in any post
  • [changed] Var­i­ous code optimizations


  • [added] Open­Box — a box added to The­sis 2’s box man­age­ment, allow­ing for arbi­trary code in The­sis 2’s skin editor
  • [changed] Open­Hook is now pro­grammed as a class to allow its code to be self-con­tained. More code refine­ments will be coming
  • [changed] Plu­g­in is now named sim­ply “Open­Hook.” Viva la simplicity!


  • [fixed] thesis_hook_after_post_box restored. Hat tip: Doug Foster


  • [added] Hook visu­al­iza­tion (Based upon
  • [changed] Improved han­dling of the options man­age­ment func­tions (upgrade/​delete options)
  • [changed] When action groups are dis­abled, the hook pages now include a nag stat­ing as much
  • [fixed] Warn­ings about emp­ty arrays when acti­vat­ing action groups


  • [fixed] Bumped to make the repos­i­to­ry update


  • [added] Hooks with cus­tomiza­tions are marked with aster­isks in the drop­down select box
  • [changed] Add link to phpinfo() under Tools menu
  • [changed] Ver­biage for unhook­ing updated
  • [fixed] Many unde­fined vari­able errors
  • [fixed] Slash­es are now prop­er­ly stripped when upgrad­ing from 2.x.x
  • [fixed] Default The­sis 404 con­tent can now be prop­er­ly removed


  • [fixed] Rare issue where the gen­er­al set­tings pan­el does­n’t ful­ly appear


  • [changed] Total rewrite of the plugin
  • [added] phpinfo() panel
  • [added] per-hook dis­abling of cus­tom actions
  • [added] option to process short­codes on cus­tom actions
  • [added] abil­i­ty to choose which actions to process (Word­Press’s or The­sis’s or both’s)
  • [added] abil­i­ty to remove all Open­Hook options
  • [removed] sev­er­al dep­re­cat­ed options


  • [fixed] Remem­ber the typos fixed in 2.3.1? There were oth­ers I should have caught then. I’m a ter­ri­ble proof­read­er, but thanks, Dean, for catch­ing them!


  • [fixed] Fixed two stu­pid typos that killed every­thing that was right with the world. Well, they broke the plu­g­in any­way. Thanks, Jim, for report­ing so quickly!


  • [added] The­sis 1.7’s four new hooks are now included.
  • [removed] Open­Hook’s file edit­ing pan­els have been removed — The­sis has these by default now.
  • [changed] Readme.txt updated.


  • [fixed] Revert­ed change intro­duced in 2.2.3 regard­ing strip­ping of slashes


  • [fixed] Fixed a syn­tax error, report­ed by mul­ti­ple users.


  • [fixed] Fixed a bug which pre­vent­ed the After Teasers Box hook from sav­ing prop­er­ly. Thanks, Michael Curving.
  • [fixed] Fixed an issue where the file edi­tors would strip slash­es unnec­es­sar­i­ly. Thanks, Kristarella.


  • Adding con­tent to the wp_footer hook block actu­al­ly works now. Thanks, Illustrata


  • Very minor bug fix: Removed option to remove thesis_admin_link() so that it can be used else­where; this func­tion is no longer added via a hook in The­sis 1.5, so the Open­Hook option essen­tial­ly did noth­ing. There’s noth­ing to gain by upgrad­ing oth­er than a slight­ly clean­er “Foot­er” sec­tion on the main Open­Hook page.


  • New hooks: wp_head, thesis_hook_comment_field, and wp_footer!
  • Sep­a­ra­tion of stylesheet edit­ing to its own page.
  • Addi­tion of cus­tom func­tions file edit­ing, also on its own page.
  • Major inter­na­tion­al­iza­tion improvements
  • Jump box added to quick­ly nav­i­gate to any of the dozens of hooks
  • Option to include an invis­i­ble, nofol­lowed Project Hon­ey Pot link in the foot­er area to help in the war against spammers.
  • …and prob­a­bly more that I can’t even remember! 


  • Added two new hooks: thesis_hook_before_content_area and thesis_hook_after_content_area.


  • Added abil­i­ty to cus­tomize the save but­ton text.
  • Added a bit more explana­to­ry text on the Open­Hook pan­el in the top area.
  • Fixed a bug with the “404 Title” hook that pre­vent­ed slash­es from being stripped prop­er­ly. Thanks, Justin Thomas.


  • Fixed a bug with the “After Head­er” check­box for PHP usage thanks to Alec Wild


  • Reor­ga­ni­za­tion of just about all of the under-the-hood code.
  • More robust stylesheet edit­ing — should work for more peo­ple now.
  • Com­plete styl­is­tic redesign to match oth­er Word­Press admin panels.
  • Save but­tons added lib­er­al­ly through­out the page.
  • Added sup­port for the lat­est The­sis hooks. 


  • Debug info bug­fix thanks to first­day­black
  • Sim­ple custom/custom.css edit­ing from with­in the Open­Hook panel 


  • Renamed from 0.2 to mark inclu­sion in the Word­Press plu­g­in directory!


  • Some code reorganization
  • Added options to eas­i­ly remove The­sis’s default actions
  • Add some explana­to­ry text to some hooks 


  • Ini­tial release

419 thoughts on “OpenHook, The Best Customization Manager Plugin for WordPress”

  1. Wow this is sweet Rick. Great idea! I wish I would have seen this before I spent all that time learn­ing hooks last week…
    Seri­ous­ly, this will save a lot of peo­ple a lot of time.

    1. Learn­ing hooks and using the custom/custom_functions.php file is def­i­nite­ly the ide­al; it ensures that your cus­tomiza­tions aren’t depen­dent upon a plu­g­in stay­ing up-to-date in order to work with the lat­est ver­sion of The­sis. How­ev­er, I will be doing my best to keep this thing cur­rent with what’s going on in the “The­si­sphere.”

  2. Thanks Rick… this is great. Would you also mind shar­ing the func­tions and CSS for your the­sis pro­mo ‘super­charge your blog’ box at the end of each post?


  3. I down­loaded, then fol­lowed the direc­tions, but it’s still not show­ing up in my plu­g­in pan­el — what am I doing wrong? I’m sure I put it in the right spot, because it’s in the same fold­er as the oth­er things I DO see in the plu­g­in panel.

    Kel­ly (blog under con­struc­tion:

  4. Rick,
    This is a great plu­g­in and while I kind of enjoy cre­at­ing cus­tom hooks this will also save me a ton of time. Thanks for cre­at­ing it.

  5. Rick,
    I’ll prob­a­bly link to this from my site, even though I will like­ly just stick with custom_functions.php myself. One ques­tion: does it sup­port php cod­ing, like con­di­tion­als, or is it strict­ly for text?

    Real­ly, real­ly good idea and good work. You are a fan­tas­tic help to the The­sis com­mu­ni­ty (and the Word­Press com­mu­ni­ty in general).

    1. It works with PHP just fine. Check out the sec­ond exam­ple in the post itself. :)

      Basi­cal­ly, any­thing that can be done with custom_functions.php can be repli­cat­ed eas­i­ly enough through Open­Hook’s panel!

    1. I’m very grate­ful for your plu­g­in, Eric! Seems like when­ev­er I try to do admin pan­el stuff, it’s so com­plex, lead­ing to sur­ren­der on my part. Your plu­g­in was very well writ­ten — ele­gant in its sim­plic­i­ty, as they say — and helped me learn some stuff!

    1. Any­thing I can do to help you get rolling with The­sis, I’d be hap­py to do. I def­i­nite­ly believe in the pow­er of The­sis to great­ly enhance a site’s appeal — both to users and to search engines.

  6. WOW, how awe­some is that! The­sis Open­Hook down­loaded and installed with absolute­ly no prob­lems. Can’t wait to start insert­ing things! Thanks Rick for all your hard work!

  7. Rick, Great plu­g­in for us novices. My ques­tion: If I use this, will it over­write any hooks already insert­ed in the cus­tom func­tions file? Thanks!

    1. No, Open­Hook will not over­ride the custom/custom_functions.php file. Both The­sis’ built-in cus­tomiza­tion fold­er and Open­Hook will load when using The­sis, so the two are complementary.

      It may be eas­i­er for some to keep larg­er blocks of code in their custom/custom_functions.php file — which they can load up in a text edi­tor with syn­tax high­light­ing and line num­bers, for exam­ple — while using Open­Hook to eas­i­ly remove The­sis’ default actions and to add in small­er customizations.

      The whole point is to empow­er the com­mu­ni­ty to be able to cus­tomize with increased ease, and I hope I’ve done that.

  8. Rick, it does­nt look like the insert­ed text using the hooks “obeys” the style built into The­sis… cor­rect? For instance I tried to move my byline from the side­bar to area before con­text and used HTML to style it, ie, H3 tags, but it did­n’t com­ply. How do we do sim­ple stuff like adjust col­or, size of font, etc, with­in the hooks?

    1. It does obey the style, but in order to take advan­tage of that, you need to repli­cate as close­ly as pos­si­ble The­sis’ markup structure.

      For instance, to do what you’re doing, you might try some­thing like this in the “Before Con­tent” box:

      <div class="post_box top"><div class="format_text">
      <p>Your content</p>

      The first and last lines are the most impor­tant as they are nec­es­sary to catch The­sis’ styling for for­mat­ted text, such as the text found in posts and comments.

      Hope this gets you head­ed in the right direction. :)

      1. Rick, that worked per­fect­ly; now I just have to tweak it.
        I should have known I need­ed more code than that, because I had to use the div ‘s etc, in my side­bar sec­tion when I altered it with hooks!! I guess I was just too excit­ed to be able to tweak my blog right in the admin pan­el that I got ahead of myself!

  9. This appli­ca­tion is cool and by the date I can tell that it is hot off the press. Thank you for this.

  10. Hey Rick,
    Thanks for this use­ful plu­g­in :) But now comes the dilem­ma that start­ed with using The­sis — to plu­g­in or not to plu­g­in, that is the question …

    Great stuff anyways :)

  11. Hey Rick,
    No mat­ter what I plug in I get the fol­low­ing warning:
    Warn­ing: fopen [function.fopen]: failed to open stream: Per­mis­sion denied in wp-content/plugins/options.php on line 32 Error editing.

    How do I fix that?

    1. From the looks of the error mes­sage, I assume that you only uploaded the files with­in the thesis-openhook/ fold­er, rather than the entire fold­er itself, with the files therein.

      In oth­er words, the options.php file should­n’t be locat­ed at wp-content/plugins/options.php; on the con­trary, it (and the oth­er Open­Hook files) should be at wp-content/plugins/thesis-openhook/options.php.

      Hope this helps you get it workin’!

  12. dude. u rock. I (we) real­ly (real­ly, real­ly, real­ly, real­ly) appre­ci­ate not only this tool, but also ALL the knowl­edge & exper­tise you bring to the The­sis forums.

     — j

  13. Rick, I had the same prob­lem as Jason. Your zip file was the prob­lem. It needs a fold­er inside with the actu­al files.

    FTP replaces the orig­i­nal dates with the trans­fer time and date so in order to pre­serve the orig­i­nal file dates and times, I always unzip Word­Press, Themes and Plu­g­ins remote­ly using CPan­el File Man­ag­er or equivalent.

    1. Rick: I rebuilt the ZIP file — mak­ing sure I select­ed to com­press the thesis-openhook/ fold­er itself rather than just the files. Should be fine now. I’m sure I messed some­thing up a few days ago when I was prepar­ing for upload­ing to the plu­g­ins direc­to­ry — which still has­n’t worked prop­er­ly for me. Hope­ful­ly all is well now.

  14. Nice lit­tle Plu­g­In which makes the work of a lot of peo­ple much eas­i­er. But maybe there is a lit­tle bug? When I check the box “Add debug infor­ma­tion” the num­ber of queries and sec­onds appear in the foot­er. But when I uncheck the box, the queries van­ish, the sec­onds stay. Bug or feature?

      1. Rick, thanks for car­ing. But there ist anoth­er major bug in your plu­g­in. The text on the save but­ton says “update options” or some­thing like that. It should of course be “BIG ASS SAVE BUTTON”! ;-)

        1. Haha. Chris and I have dif­fer­ent ideas on what makes a good sub­mit but­ton. :P

          That said, here’s the fix for the debug stats bug. This block of code is near the bot­tom of thesis-openhook/thesis-openhook.php:

          	if (get_option('openhook_footer_debug_info') && current_user_can('level_10'))
          		echo '<p>', get_num_queries(), __(' queries. '); timer_stop(1); _e('seconds.'); echo '</p>';

          Change it to this:

          	if (get_option('openhook_footer_debug_info') && current_user_can('level_10')) {
          		echo '<p>', get_num_queries(), __(' queries. ');
          		echo __('seconds.'), '</p>';

          Will def­i­nite­ly be in the next ver­sion of Open­Hook — along with the begin­nings of being able to edit custom/custom.css direct­ly from the admin pan­el! :D

  15. I’m hav­ing the same prob­lem as Jason. All my files are under “the­sis-open­hook” fold­er but I get the same mes­sage. I hate hooks, why com­pli­cat­ing /​ “fix­ing” things when there’s no need …

    Also when I try to add it man­u­al­ly via custom_functions.php I get this mes­sage when i try to access my site “Parse error: syn­tax error, unex­pect­ed ‘<’ in wp-content/themes/thesis/custom/custom_functions.php on line 37”

    I add it like this:

    /​* YOAST BreadCrumb */

    func­tion yoast_breadcrumb () {

    add_action(’thesis_hook_before_title, ‘yoast_​breadcrumb’);

    hate .. it …

    1. I mean like this ..sor­ry

      /​* YOAST BreadCrumb */

      func­tion yoast_breadcrumb () {


      add_action(’thesis_hook_before_title, ‘yoast_​breadcrumb’);

      1. Sor­ry feel free to delete my lat­est 2 com­ments but some­how php code is not showing …

    2. Yeah, unless the code is prop­er­ly escaped, Word­Press eats it.

      How­ev­er, you are wel­come to e‑mail me the code, and I’ll help you get it working.

      Regard­ing The­sis Open­Hook, on which site are you attempt­ing to install it? I’d like to take a look, if possible.

      1. Hey Rick, thanks for the sup­port! New code is not show­ing me error mes­sage any­more but I can’t see the bread­crumbs .… but that’s anoth­er dis­cus­sion for forums not here

  16. I get this mes­sage when I try to update a hook.
    Warn­ing: fopen(/home/p5r54565/public_html//wp-content/themes/thesis/custom/custom.css) [function.fopen]: failed to open stream: Per­mis­sion denied in /home/p5r54565/public_html/wp-content/plugins/thesis-openhook/options.php on line 32
    Error editing.
    Is this a prob­lem with per­mis­sions on my host server?

    1. Oh good­ness… I think I may have acci­den­tal­ly uploaded my devel­op­ment code. (Les­son? Orga­ni­za­tion is GOOD and should NOT be neglect­ed!) When I get off of my day job here in a few hours, I’ll be able to devote some time to get­ting this thing work­ing, as well as get­ting a canon­i­cal release uploaded to Word­Press Extend.

      Every­one else: Glad you’re enjoy­ing the plu­g­in. Hope­ful­ly I can make it even nicer and more fool­proof. I real­ly want to get a more ele­gant admin pan­el going, with eas­i­er to read/​find panels.

  17. This looks real­ly excel­lent, Rick, thanks for cre­at­ing it. Any­thing that makes The­sis eas­i­er to use! I’ve installed it on my WP 2.6.5 blog, now just read­ing up on hooks to under­stand bet­ter what I’d like to do ;)

    Thanks again.

  18. That’s awe­some Rick, thanks for devis­ing this! Hav­ing all the hooks at the same place, and being able to edit them so sim­ply will make the cus­tomiz­ing job that much easier.
    You even added many use­ful and cool com­ments when appropriate !

  19. Open­Hook’s been updat­ed to 1.1 — bug fix + style sheet edit­ing! Should show up in your plu­g­ins pan­el for auto-upgrad­ing; this baby’s host­ed at Word­Press now. :D

  20. Rick:

    Can you tell me how to add an iFrame to my blog. Can I use hooks?

    Actu­al­ly I need about 5 pages with 5 dif­fer­ent iFrames. I would appre­ci­ate the help.

  21. Hey Rick,

    This is a fab­u­lous idea! I did­n’t dis­cov­er it until today. Sad­ly though, the down­load link does­n’t seem to be working. :(

    1. The down­load link points to the Word­Press plu­g­in direc­to­ry page, which is where you’ll need to down­load the file from. (Right-click­ing on the down­load link on this page — or using a down­load man­ag­er to grab the link — will not work; it’s cur­rent­ly a redi­rec­tion, not a download.)

      1. Yeah I know bud­dy. I went over to the Word­Press direc­to­ry, and clicked on the big ‘Down­load’ but­ton and it’s com­ing up as a dead link for me.

        1. Well, that’s unfor­tu­nate. I updat­ed the down­load links in the post above to point to a host­ed ver­sion here. Sor­ry ’bout that, folks!

    1. @Tom K.: installed per­fect­ly on my copy of WP 2.7 RC2 -

      @Rick — in RC2 — plu­g­in option shows up as its own tab under appear­ance as The­sis Open­hook — so even eas­i­er to find than advertised.

      Installed per­fect­ly. Now I have to learn what to do with it.


      Edit by Rick Beck­man: Fixed a bit of markup.

      1. Tom K.: What method of installing were you using? I’ve yet to have any luck with the auto­mat­ed plu­g­in installer. Glad you got it installed, what­ev­er method you used!

        Jonathan Soroko: Open­Hook’s always had its own tab — below “Design” on Word­Press < 2.7 —  but Word­Press 2.7 def­i­nite­ly makes the sub­head­ings more acces­si­ble. Have fun learn­ing how to use it, and def­i­nite­ly feel free to exper­i­ment — espe­cial­ly when fix­ing errors is as sim­ple as delet­ing from a text box and re-sav­ing the form.

  22. Hi! I’m total­ly new to hooks and am try­ing out this plu­g­in. I added text to the Before Side­bars hook to have the words “Click cur­rent post title to see relat­ed movie below. ” appear on my site. This is because the movie is relat­ed to the post via a cus­tom field, but if you just go to the home page (not the post link itself), the movie does not appear. I would like this mes­sage to appear only on the home page, and I would like its style to match the oth­er wid­get head­ings. Can any­one help? Sor­ry to be so limited!

    1. Try using some­thing like this in the “Before Side­bars” box, mak­ing sure to check the “Use PHP” option:

      <?php if (is_home()) { ?>
      <div class="sidebar"><ul class="sidebar_list"><li class="widget video_intro"><h3>THIS IS YOUR TITLE</h3></li></ul></div>
      <?php } ?>

      Yeah, it’s a lot of code, but it will ensure that the head­line is ren­dered iden­ti­cal­ly to oth­er side­bar head­ings — and that it will respond to font changes made with­in the Design Options panels.

      Using this markup will place a lot of mar­gin on the bot­tom of the head­ing, and you can lessen it by using this line in your custom/custom.css file:

      li.widget.video_intro { margin-bottom: 0; }
  23. Hi Rick.

    I have a sand­box build that I am play­ing around with. I checked off the footer:
    “Remove The­sis attri­bu­tion  — Only those who pur­chased The­sis using the Developer’s Option are allowed to remove the The­sis attri­bu­tion link. If you pur­chased the Per­son­al Option and remove the The­sis attri­bu­tion, be sure to include it with­in your own foot­er con­tent (per­haps replac­ing it with an
    affil­i­ate link to DIYthemes).”

    Yes, I do have a devel­op­ers license, just to let you know.

    The attri­bu­tion is still show­ing up.

    I also added in some text in the input box for the footer.
    Copy­right 2008, BOTC

    That shows up just fine.

    Here is the site.

    Sor­ry to say I could not under­stand what this meant:
    You’re wel­come to ask sup­port below in the com­ments; pri­or to post­ing any code, though, please make sure it is prop­er­ly escaped. Thanks!
    (and going to the link did not give me any clues either)

    Any ideas as to what can be wrong.

    I am glad you have made this plu­g­in. Thanks for all your efforts.

  24. So I’m curi­ous how this plays with The­sis in a WPMU set­ting. Does it involve any file alter­ations, out­side of custom.css?

    Just won­der­ing how it would work. One of the things that drew me to The­sis in the first place was how well it played with WPMU. Being able to tweak lay­out ele­ments triv­ial­ly across a series of blogs with­out hack­ing at the theme files themselves.

    1. I’m not famil­iar with Word­Press μ’s archi­tec­ture, so I would love to hear whether or not Open­Hook works or not. You’re right in assum­ing that the only actu­al file edit­ing which goes on is of the cus­tom style sheet; how­ev­er, that option is only avail­able if a user has top-tier admin­is­tra­tor priv­i­leges, which may not be the case in a mul­ti-user environment.

    2. With regards to WMPU com­pat­i­bil­i­ty, I test­ed it and it works just fine. Set­tings are iso­lat­ed to the indi­vid­ual blog those changes were done on. I haven’t checked the custom.css stuff, but if you sim­ply don’t allow it, it’s not a prob­lem. Were it allowed, I’m sure it would prop­a­gate across all blogs shar­ing the same theme directory.

  25. Gol­ly but this is good. I had put off upgrad­ing The­sis until after I had WP 2.7 up and run­ning, then did The­sis and this plu­g­in and I am very impressed and very, very thank­ful for all the hard work you have con­tributed in gen­er­al, and on this plu­g­in in par­tic­u­lar. Real­ly. Kudos to you.

  26. Hi Rick,

    I LOVE this- it is won­der­ful and made using The­sis so much eas­i­er. I’m won­der­ing how to put my Feed­burn­er stats into the nav bar, where the sub­scribe but­ton was… is it pos­si­ble to do it using openhook?

    1. Not as eas­i­ly as you’d like; it would involve remov­ing the default nav bar and then writ­ing your own nav bar in the “Before Head­er” area. Oth­er­wise, you could per­haps remove the feed link (via The­sis Options) and then insert your own Feed­burn stats via the “Before Head­er” option of Open­Hook. This will place your code after the nav menu and before the head­er, so you would need to posi­tion it into the appro­pri­ate place using custom/custom.css.

    2. @Rick, Thanks! So what’s the code for the .cus­tom CSS if I want the stats aligned to the right? And maybe this is some­thing that you could con­sid­er adding to the next ver­sion? (Says the non tech­ni­cal per­son with a smile on her face?)

  27. I want­ed to add the Add to Any javascript “After Con­tent” so I got the code and past­ed it — but it does­n’t appear after the post content.

    I’ve changed per­mis­sions on the custom/custom.css to 777 -

    Did I miss something?

    Thanks Rick for a killer tool — and I LOVE the “lit­tle ass save button”

    Rick Butts

    Edit by Rick Beck­man: Fixed link markup.

    1. Well, that tells me what I need to do next in Open­Hook — more doc­u­men­ta­tion! “After Con­tent” refers to near­ly the bot­tom of the page — after posts and com­ments have all been out­put. If you want to add some­thing to the end of each post before the com­ments start, use “After Post” instead. :)

      1. well DOH!

        I’m obvi­ous­ly a retard — I shot down the page until I found after con­tent and then fig­ured I was where I need­ed to be.

        I’ll TRY to pay more atten­tion now — hope­ful­ly my .js will work there.

        Thanks Rick -

        Rick Butts

  28. I’m try­ing to use this plu­g­in for the first time — I can add the fol­low­ing code to custom_​functions and it works fine, but when I add the exact same thing inside the plu­g­in, it does­n’t work. What am I miss­ing to use the plugin?

    function add_social_profiles () {
    global $comment;
    user_id); ?>
    add_action('thesis_hook_after_comment_meta', 'add_social_profiles');

    1. Looks like Word­Press gar­bled the code a bit (tip: always run code through an escap­ing tool pri­or to post­ing in com­ments or posts), so I’m not sure of the exact code to give you… How­ev­er, when using Open­Hook, rather than using this:

      add_action('thesis_hook_after_comment_meta', 'add_social_profiles');

      …you can call your func­tion direct­ly, like this:


      Let me know if you get it working.

  29. Rick,

    I use the All-in-One SEO plu­g­in and when mod­i­fy­ing the head­er, it seems I get a con­flict with that plugin.

    Here’s my error message -

    Warn­ing: Can­not mod­i­fy head­er infor­ma­tion — head­ers already sent by (out­put start­ed at /home/rob888/public_html/shop/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php:632) in /home/rob888/public_html/shop/wp-content/plugins/thesis-openhook/thesis-openhook.php(191) : eval()‘d code on line 1

    What do I do?


    1. What code are you using in Open­Hook? It’s pos­si­ble that head­er infor­ma­tion is being out­put, which of course would con­flict with All-in-One SEO which has already out­put head­er information.

  30. Tyler @ Building Camelot

    This is an awe­some plug-in! Thank you for tak­ing the time to put it together.

    I’m new to The­sis and using this plu­g­in and I have a fol­low-up ques­tion from the forums that I’d like to ask. I’m try­ing to add a email and twit­ter link next to my RSS but­ton in the nav bar. I’d like for it to look like @mnichols site Anx­i­ety, Pan­ic & Health but I’m just not sure what to paste into the “Before Head­er” block. I want to keep my nav menu but add the email and twit­ter link to the right.

    I tried using the code you sug­gest­ed here: RSS email next to Sub­scribe by RSS in nav bar but it’s not exact­ly what I’m after.

    Sor­ry for the drawn out com­ment and any insight you have to offer is great­ly appreciated.

  31. I have added the code below (via in the head­er box to change to test adding an image in the head­er area, but it did­n’t work, but when I added direct­ly through custom_functions.php file it worked. Any­body know what the prob­lem is… I’m using ver­sion 2.7 of word­press. Thanks!

    /​* Cus­tom Head­er Image */
    func­tion add_header_image () {
    echo “<a>

    add_action(‘thesis_hook_after_title’, ‘add_​header_​image’);

  32. New to The­sis and OpenHook
    Work­ing in a sand­box envi­ron­ment. My ques­tion has to do with migra­tion to a pro­duc­tion environment.

    It looks like your plu­g­in does­n’t mod­i­fy the cus­tom func­tu­ions php file. Does it store the mod­i­fi­ca­tions in the data­base? I sup­pose I could have looked. Mov­ing a file into pro­duc­tion is easy. Export­ing a table, or table con­tents is a lit­tle hard­er. Sug­ges­tions on how to migrate hooks from a sand­box to a pro­duc­tion environment?

    1. Last time I did it, I copy/​pasted the val­ues from the test site to the live site man­u­al­ly. Export­ing would be a mat­ter of find­ing the rel­e­vant rows in the wp_options table, then import­ing them into the pro­duc­tion site pri­or to installing Open­Hook (which will cre­ate new options of the same name, result­ing in dupli­cate entries, which I’m unsure how they’d be han­dled in WordPress).

      1. Wow — Thanks for the fast reply! Thats sort of what I fig­ured. Maybe an export/​import func­tion in the next release? Your file for­mat is already defined as custom_functions.php. I think for my sand­box I am going to just work in the php file. It will help me hone my php skills and make migra­tion to pro­duc­tion a snap! Oh, crud, did I hard code some absolute sand­box URLs? Ug. Hmm, rel­a­tive URLS are bad in down­stream feeds, Ug.

        OK — I’ll work it out.

        Thanks again

        1. An import/​export might not be a bad idea. I could see it being use­ful even for blog­gers who deploy mul­ti­ple blogs, all with The­sis & sim­i­lar “base” customizations.

          I’ll have to get with Chris about this; we’re want­i­ng Open­Hook func­tion­al­i­ty built in to The­sis in the future, so I’d rather move in that direc­tion, and we could maybe add import/​export for The­sis set­tings as a whole. Now that’d be total awesomeness.

  33. Great plu­g­in that is real­ly usable and use­ful for noobs like us. Thanks and keep up the good work!

  34. Get­ting the fol­low­ing error above the head­er on home page, and at the top and bot­tom of the word­press dashboard?????

    Warn­ing: include_once(/home/admin/public_html/wp-content/plugins/__MACOSX/) [function.include-once]: failed to open stream: Suc­cess in /home/admin/public_html/wp-settings.php on line 465

    Warn­ing: include_​once() [function.include]: Failed open­ing ‘/home­/ad­min/pub­lic_htm­l/wp-con­tent/­plu­g­in­s/__­MA­COSX/’ for inclu­sion (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/admin/public_html/wp-settings.php on line 465

    1. Just to add, I have deac­ti­vat­ed the theme and delet­ed it as well and I still have this issue.

      Thanks Rick

    2. Now, I can’t login to admin…This is the new error:

      Warn­ing: include_once(/home/admin/public_html/wp-content/plugins/__MACOSX/) [function.include-once]: failed to open stream: Suc­cess in /home/admin/public_html/wp-settings.php on line 465

      Warn­ing: include_​once() [function.include]: Failed open­ing ‘/home­/ad­min/pub­lic_htm­l/wp-con­tent/­plu­g­in­s/__­MA­COSX/’ for inclu­sion (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/admin/public_html/wp-settings.php on line 465

      Warn­ing: Can­not mod­i­fy head­er infor­ma­tion — head­ers already sent by (out­put start­ed at /home/admin/public_html/wp-settings.php:465) in /home/admin/public_html/wp-includes/pluggable.php on line 850

    3. View­ing your Web serv­er in FTP, do you see a __MACOSX fold­er in the plugins fold­er? I’m not sure what would have cre­at­ed it, but for some rea­son, your Word­Press instal­la­tion thinks its there or some­thing. Quite frankly, I’ve nev­er come across some­thing like this before. Ver­i­fy the files on your serv­er, and delete the fold­er if it’s there. If it’s not, ask you host if they can track it down for you (it may be hidden).

  35. Rick,

    I am using a sin­gle col­umn design and I want the mul­ti­me­dia box to be in the con­tent area. I can’t fig­ure out how to do this?

    Is it pos­si­ble to run text in a col­umn along­side it?

    Thanks in advance.

  36. @Rick Beck­man Two points:

    RE: _​_​MACOSX folder

    When you install the plu­g­in from the WP Admin page (browse for a zip file), the _​MACOSX file shows up as part of the plu­g­in result­ing in the error not­ed above. I dupli­cat­ed it and could­n’t fig­ure out what was going on until I looked at the struc­ture of the .zip file.

    If you down­load the plu­g­in using your down­load link, the same file is there. You have to unzip the file, then muck around in the fold­er struc­ture until you find the actu­al plu­g­in file. So that’s the culprit.


    Ques­tion: My CSS file changes, work­ing fine in custom.css, do not work at all with the same custom.css copy and past­ed into the plu­g­in in the css area. The custom.css file is in the The­sis Cus­tom fold­er as need­ed, but when I exe­cute it, I get the plain vanil­la The­sis theme instead of the fab­u­lous cus­tomiza­tions I have done ;>))

    My themes are in default loca­tion, but I have many blogs and they are locat­ed in a sub­di­rec­to­ry of \public_​html and then the installed WP blog with the The­sis theme. Is there any path issues to the CSS val­ues? \public_html\blog\themes\thesis\custom ver­sus \public_html\themes\thesis\custom?

  37. Thanks Rick,

    I would like to sec­ond Dav­e’s com­ment above re: your “Super charge your blog” box that appears at the end of every post pro­mot­ing the the­sis theme. Pro­vid­ing a custom_​functions code for some­thing like this would be super cool.

  38. I’m work­ing on switch­ing my site over to The­sis, and Open­Hook has proven invalu­able so far. I have only one sug­ges­tion, and if it’s been made before, just con­sid­er this anoth­er vote :)

    It would *rock* if you could dupli­cate the ‘lit­tle ass save but­ton’ at the top of the page and peri­od­i­cal­ly through­out the page. The vast major­i­ty of stuff I’m doing at the moment involves the cus­tom css file, and hav­ing to scroll all­l­ll the way down each time to press the save but­ton is a lit­tle cumbersome.

    Oth­er than that minor annoy­ance, Open­Hook is fan­tas­tic — keep up the great work!

  39. Hel­lo Rick, thanks for a won­der­ful plugin.

    I am try­ing to use Open­hook in order to insert a slideshow-appli­ca­tion before my side­bars. Even­though I have added the fol­low­ing piece of code in the cor­rect field of Open­hook, with ‘Exe­cute PHP’ enabled,

    ” ”

    I get the fol­low­ing error mes­sage where my slideshow oth­er­wise would be:

    ” Warn­ing: include(/public_html/wp-content/themes/thesis/gallery.php) [function.include]: failed to open stream: No such file or direc­to­ry in /home/polysj4/public_html/wp-content/plugins/thesis-openhook/thesis-openhook.php(367) : eval()‘d code on line 1 ”

    Is there a prob­lem with the include-com­mand, or have I missed some­thing very obvi­ous? Any help would be most appre­ci­at­ed, and thanks again for a tru­ly help­ful tool.

    1. ADDITION to pre­vi­ous comment:

      the line of code that I have insert­ed into Open­hook is:


      1. ?php include(‘/public_html/wp-content/themes/thesis/gallery.php’); ?

        though wrapped with­in the appro­pri­ate  — signs.

        I apol­o­gise for all the extra clutter

  40. Hi Rick,

    Great plu­g­in, thanks.
    I have the mul­ti­me­dia box dis­abled until I can get it set up the way I want, with a miniblog, using one cat­e­go­ry of posts from the main blog.There’s a wid­get plu­g­in for this, and I want to put the wid­get in the mul­ti­me­dia box. Is this pos­si­ble? If not, can I put one cat­e­go­ry of posts there, using OpenHook?

  41. I think there’s a small bug with your plu­g­in. When I use the cus­tom functions.php file and add some­thing before the head­er, it appears between the nav bar and the top of the head­er. When I use your plu­g­in and add it in the “before head­er” box it appears above the nav bar. Any suggestions?

    1. The rea­son is that Open­Hook’s code is fired pri­or to The­sis’ (plu­g­ins pre­cede themes in the Word­Press hier­ar­chy), so it isn’t real­ly a bug so much as a neces­si­ty. If you want some­thing below the nav menu, remove the default nav menu with the check­box in Open­Hook, then add <?php thesis_nav_menu(); ?> *before* your code in the Before Head­er box, being sure that the “Use PHP” box for that area is checked.

  42. Wow… I spent 3 or so hours ear­li­er get­ting error mes­sages thrown up while try­ing to cre­ate my own hook. I then used this plu­g­in and it worked with in 2 min­utes. LOL.

    Nice work!

  43. I’ve uploaded the­sis open­hook to my plu­g­ins, but when I go to acti­vate it, the plu­g­in does­n’t show up at all. I’ve tried installing and unin­stalling twice.. Please advise as how to get it to work. Thannks,


  44. Open­Hook is tru­ly amaz­ing, *almost* as impor­tant a con­tri­bu­tion as The­sis itself. :=)

  45. Hey gang,
    I would like to add a bit of text with a link to anoth­er site as follows:

    Read Kel­ley Bel­l’s Columns on The Huff­in­g­ton Post:

    How do I for­mat this so that the link is hot, and you just see “The Huff­in­g­ton Post” instead of the whole web address?

    Also, when using open­hook to place this, I am open to sug­ges­tions regard­ing the best place­ment on the site.

    I tried it under the head­er, but the text was so small and off to the left, it looked kind of bad. Any ideas?

  46. I am a real novice here. But I have installed the­sis in WP because I like the idea of hav­ing drop down com­bo box­es for Cat­e­gories. I cant seem to make this hap­pen. For example:
    Soft­ware (cat­e­go­ry)
    Adobe Plu­g­ins (sub category)
    NIK Vivesa (sub category)
    Hard­ware (Cat­e­go­ry)
    Print­ers (sub)
    Scan­ners (sub)

    and so on. Then when choos­ing the Soft­ware cat­e­go­ry, the drop down would list Adobe and NIK. Using the Hard­ware drop down, choose Print­ers or Scan­ners. etc.

    Can this be done? and how?

  47. OK, I’ve down­loaded and installed it on my BS blog and it all went well, but I still have no idea how to work with hooks. Where would I be able to find a good site that explains work­ing with hooks in such a way that even an idiot could fol­low it.

  48. Hey Rick,

    Is there a dif­fer­ence in how open hook acts when WP is installed in the main fold­er or a sub folder?

    In a site with WP installed in a sub fold­er, the box­es for open hook are all dif­fer­ent and don’t have the stretch func­tion. Also the custom.css box at the top is miss­ing from the site where WP is installed in a sub folder.

    Is there some sort of path issue when the plug in is used on sites where WP is installed in a sub folder?

    This is a great plug in. Hav­ing the abil­i­ty to alter a site with these admin files is a huge time saver.


  49. hey… you already rock with this one but are you prepar­ing some­thing spe­cial for us in con­nec­tion to The­sis 1.4 ?

  50. Well hel­lo there. What is this fine post doing at the top of the page? Do I smell 1.4 fea­tured posts in action!?

  51. Hi, I just want­ed to thank you for the excel­lent plu­g­in. I am also recent­ly a huge fan of the­sis (as you can see on my blog) and your plu­g­in is going to save me a whole lot of time.

    All the best in the new year.

  52. Hi Rick -

    Do you plan on adding the new “thesis_​hook_​feature_​box” option to your Open-Hooks plugin?


  53. Hel­lo,
    The styling that I added to .cus­tom #con­tain­er on the cus­tom css file no longer ren­ders after I installed this plug-in. The body.custom is fine though. Do you know why the cus­tom class would stop working??

    1. Sor­ry… nev­er mind, the issue was caused because I turned on the “full-width” option. The plug-in works great, thanks!

  54. Hel­lo,
    I like this stuff, it would be nice if there are dif­fer­ent coulours on par­tic­u­lar parts of code (some­thing like in code editors)-or do you have some tips on good plu­g­in for that? Oth­er thing, are you going to imple­ment “Featrured box” ? Thank you anyway ;)

  55. Hel­lo Rick, I just spent quite many hours learn­ing about The­sis and I have just installed your open­hooks plu­g­in. Thank you for mak­ing things eas­i­er for me as I am pret­ty much a beginner.

    Can I find out if fea­ture box­es are the box­es that are below your mul­ti­me­dia box? What would be the codes for these? I am inter­est­ed to have the same lay­out as the one on this website.

    1. The fea­ture box in The­sis 1.4 appears at the top of your site in a defin­able place in the Design Options. The box­es you refer to (which I’m no longer using, actu­al­ly) were cre­at­ed using the process described here (sor­ry about the bro­ken images; such is the result of hav­ing import­ed con­tent from all of my blogs into one location).

  56. It’s been a while since I’ve checked com­ments in this thread — been so busy work­ing with The­sis itself, I’ve neglect­ed this bad boy.

    Here are my plans for the next ver­sion of Open­Hook, and no, I don’t have any clue about a release date — I’m still hop­ing Chris will just let me inte­grate the thing com­plete­ly into Thesis!

    • Sup­port for The­sis 1.4’s new hooks.

    • More attrac­tive lay­out of the edit­ing boxes.

    • More rugged security.

    • Sup­port for The­sis instal­la­tions in direc­to­ries oth­er than thesis/ for custom.css editing.

    • And so on.

  57. Hi Rick -
    I want to use front­page slide show on only my front page. I put the php code in open hook “after head­er” and it works great. Prob­lem is, it con­flicts with a plu­g­in used on anoth­er page. 

    How can I make this code work on only the front page?
    Even bet­ter, How can I exclude this code on a spe­cif­ic page using open hook?

    Thanks — Love your work!

    1. You can wrap your code with any one of Word­Press’ con­di­tion­al tags.

      For exam­ple, to include stuff only on the front page of your blog:

      <?php if (is_front_page()) { ?>
      <?php } ?>

      Or to exclude con­tent from a cer­tain page, you will need the ID num­ber of the page you want to exclude from. Then, use the same set­up as the “on front page only” code above, but use the ! operand to negate the con­di­tion­al, like this:

      <?php if (!is_page(#)) { ?>
      <?php } ?>

      The # should be replaced with the num­ber of the page in question.

      In both instances, you would need to check Open­Hook’s “Use PHP” box for whichev­er hook you’re using dynam­ic code within.

  58. Is there any­way to make after_​post hook real­ly after the post and before any third-par­ty plu­g­ins using Open­Hook? I’ll dig through the above com­ments to see if some­one else has asked. Thanks!! :)

  59. Is this com­pat­i­ble with Word­Press 2.7? Notes say Com­pat­i­ble up to: 2.6.3. I am excit­ed to use this as it sounds like it will help me tremen­dous­ly in my new work with Thesis.

    1. Yeah, it works with 2.7 for the most part. :)

      I’m hop­ing to improve com­pat­i­bil­i­ty in the future, when I have some time to work on it. Tons to do!

  60. when you are talk­ing about the new ver­sion and things to do :) , I will real­ly appre­ci­ate if the “SAVE” but­ton has the fixed posi­tion so I dont have to sroll to the bot­tom of the page every­time I change something…

    1. Ooh, a fixed save but­ton. Had­n’t thought about that one. That’s def­i­nite­ly prefer­able to a bunch of save but­tons strewn about after each box (unless I fig­ure out how to use Ajax to save just one box at a time w/​o refresh­ing the page). Since JavaScript makes about as much sense to me as Esperan­to, I think I’ll be stick­ing with a fixed save but­ton for the fore­see­able future. Thanks for the sug­ges­tion, Maniac!

  61. I’m cre­at­ing my own affil­i­ate ad in HTML and using Open­Hook to insert it on my blog via the “After Com­ments” box. My ad includes a gif image and no mat­ter what I do, I can’t get it to show up. Are images insert­ed through Open­Hook sup­posed to be in a par­tic­u­lar loca­tion on my host serv­er? What is the cor­rect path­name to use?


    1. Cyn­thia, it entire­ly depends upon where you’ve uploaded the image on your serv­er. If you’re plac­ing the image in your thesis/custom/images direc­to­ry, then that is the direc­to­ry for the image you’ll need to ref­er­ence in your image code.

      1. Rick,

        I put the image in that direc­to­ry and tried using full and par­tial path names and it still would not show up.

        I also was try­ing to make the image click­able with an affil­i­ate link. 

        The image showed up and was click­able when I made the ad in Dreamweaver, but when I copied and past­ed the text into Open­Hook, I had to change the path names (from the one on my hard dri­ve to the path to the file on the serv­er) and just could­n’t come up with the right sequence of HTML to get the image to show in my table. Any ideas?



    2. Rick,

      Here’s a fol­low-up to my pre­vi­ous ques­tion. I used your DIV tip above to get the text in my HTML ad (which I put in a table) to be styled like the rest of the The­sis text. I love the font and lead­ing, but now the style supercedes the cell­padding I enter in my HTML. Also, there’s too much space above my head­line and sub­head. Does this mean I have to mod­i­fy the CSS file? Which one? How?

      Thanks! (I real­ly love work­ing with The­sis and OpenHook!)


  62. Hi Rick,

    This is a fan­tas­tic plu­g­in, thank you. How­ev­er I’m hav­ing a prob­lem get­ting the default The­sis com­ments link to remove. I am run­ning the fol­low­ing code in the after post hook:

    <a href="">Permalink -
    <a href="">Comments ()

    The code works but check­ing the “remove The­sis com­ments link” does noth­ing. I can’t remove it using the cus­tom css file either. Any idea what’s going on?

    1. Jacob, are you using The­sis 1.4.2? There was a weird issue with 1.4 which pre­vent­ed the remove_action() for the com­ments link from work­ing, but it has since been fixed.

  63. Has any­body had any luck with get­ting the­sis-open­hook to work as a plu­g­in under MU?

  64. Daniel Rodriguez

    Hi rick,
    I’m using the­sis 1.4.2 and I hav­ing prob­lems with the custom.css, just cant see the text box.
    Are you havng this prob­lem to?

    1. If no text box for the custom.css is show­ing up, that’s because Open­Hook could­n’t access the custom.css file. The box is hid­den in such a case to pre­vent larg­er problems.

      File per­mis­sions, file struc­ture, unusu­al serv­er setups… Lots of things could pre­vent the file from being accessed.

      Most com­mon, though, is that The­sis is installed some­where oth­er than in wp-content/themes/thesis/ (if the fold­er isn’t thesis/, Open­Hook does­n’t touch the custom.css file).

  65. OK, basic question — 

    I uploaded my logo, and used Open­Hook before_​title hook with this:

    <img align="left" src="" style=""/>

    and I see the above when I view the source code, but no image shows up.

    What am I doing wrong?

    1. Help!

      Using Open­Hook to put logo into head­er: I uploaded the image, and I see the line in the ‘view source’ option, but the logo does­n’t show up. When I type the URL of the image in the address bar, I get a 404 page.

      Here’s the site:

  66. Hey Rick,

    Ques­tion for you. Just rein­stalled the­sis for a new blog I am devel­op­ing, and added open­hook to it.

    For some rea­son in open hook I do not see the custom.css: box. At the top of the screen is “Before HTML:”.

    Any ideas as to why the Cus­tom CSS box would not be show­ing up in Open Hook?

    Thanks in advance!


      1. Hi Rick, thanks for the quick answer.

        My atyle.css is locat­ed in wp-con­tent/themes/the­sis

        What should the file per­mis­sion be for open­hook to see it?

        Thanks, Doc

        1. I assume it should be set to be serv­er writable, but I’m not pre­tend­ing to know that much about serv­er con­fig­u­ra­tions. Try 0777 as the per­mis­sions on it to see if that resolves it.

  67. LOVE this plu­g­in! Thanks for your time and effort in cre­at­ing it. Saves a great deal of time for us new­bies in cus­tomiz­ing the The­sis them.

  68. Just pass­ing by to say thank you for the good plu­g­in! I can do with it almost every­thing need­ed. And, very impor­tant — to edit the custom.css with­out even start­ing an FTP pro­gram and all that down­load­ing, edit­ing, upload­ing etc. :)

    Please, con­tin­ue sup­port­ing it, this obvi­ous­ly becomes my main tool :)

    Thanks again!

  69. Hey!

    Thanks for the AWESOME plu­g­in. I was won­der­ing if there was a good way to use Open­hook to do this:

    The­sis is set on my blog to have one side­bar, but on cer­tain Pages, I would like it to be the two side­bar style. Is there any­way to do an If/​Else state­ment in Open­hook to help facil­i­tate this happening?

    Thank you so much!


    1. Unfor­tu­nate­ly, not that I’m aware of. More advanced con­trol over the side­bars like that more than like­ly would involve hack­ing The­sis’ core to add in your con­di­tion­als, which I don’t rec­om­mend. How­ev­er, with some CSS trick­ery, you could prob­a­bly achieve what you’re want­i­ng. Have you asked about this in the The­sis Cus­tomiza­tion forum on the sup­port board? Lots of styling gurus hang around there and should be able to help you out.

      1. Rick,

        Well you are the man. Thanks again for all of your hard work and being active on the com­ments here. Style & Grace. 

        Best, Brad

  70. Hi Rick, is there a way to use Open­Hook to add tweets in my head­er? When I add it, it seems to push the entire head­er down.

    Am I miss­ing something?

    1. Well, I can’t say for sure with­out see­ing it in action, but you like­ly need to add some styling to the tweet so get it to appear where you want.

      Assum­ing the tweet is in a con­tain­er called #tweet, you could use some­thing like this to put the tweet on the right side of your header:

      #tweet { float: right; }

      That will need to be added to your custom.css file, either via Open­Hook (if that option is avail­able to you) or via man­u­al­ly edit­ing the file.

      1. ack! I tried this and used open­hook instead of Notepad++ and ftp to change cus­tom css and now my logo is gone. I’m not sure what I could have done. I added to #tweet lines of code to the cus­tom css and have removed both of them but my logo is still gone.

      2. What seems even more strange is I remem­bered the last custom.css I uploaded was prob­a­bly still in my recy­cle bin. I brought it out and my logo is still gone. Almost like some­thing is stuck and clear­ing out properly.

      3. OK, so some­thing very strange hap­pened. When I typed in the direct URL to my logo the url showed up in the brows­er as text. I uploaded my logo again and things seem to be work­ing normally.

        Not quite sure if it was an Open­Hook issue or not, but this is the first time I’ve used Open­Hook for custom.css.

        May be a bug?

        1. I would­n’t expect so; there’s no way that Open­Hook could have affect­ed your image file. Not sure what hap­pened there, but I’m glad you got it sorted!

  71. The scope of the The­sis project, what it’s done and what it plans to do, is so vast that it’s easy to assume Mr. Pear­son & Co. want to cre­ate a new caste of coders/​designers/​consultants who are keep­ers of the The­sis secrets. That one of y’all devel­oped this Open­Hook pan­el is direct refu­ta­tion of that. I won­der if you (or any­one) could give me encour­age­ment that I could sin­gle-hand­ed­ly accom­plish my wish-list. I’d appre­ci­ate your thoughts. I’m on Twit­ter as @RickWolff .

  72. Rick,

    I love your plu­g­in, thanks! I just upgrad­ed to 2.0, and have this weird issue: the “Exe­cute PHP on this hook” but­ton on the “After Head­er” hook won’t stay checked! Is this a lit­tle bug? Since I’ve got this code there …

    … I’m not see­ing my Nav Menu at all! I’ve tried all the L.A.Save But­tons, but to no avail. Ideas?


    1. Rick,

      I nosed around in options.php and found …

      <input value=“1” id=“openhook_after_header_php” name=“openhook_after_html_php” type=“checkbox” /​>”

      and changed “openhook_​after_​html_​php” to “openhook_​after_​header_​php.” That seemed to do the trick.

      My first php cod­ing experience!

      1. Yeah, my bad there. Open­Hook was the prod­uct of close to ten hours non-stop cod­ing going from ver­sion 1.1 to 2.0. I got a lit­tle cross-eyed at times. I fixed the bug and 2.0.1 should show up in your dash­board for auto­mat­ic upgrade soon enough. Thanks a ton for report­ing it!

        1. Rick,

          Absolute­ly! It gave me an oppor­tu­ni­ty to learn a lit­tle php. And thanks so much for the plu­g­in. It allows hacks like me to look like real experts.



  73. Thanks for the 2.0 update. Now for a request…how about allow­ing us to change the name of the “But­ton” to some­thing else? Even Chris allows that.

    1. I had con­sid­ered that, but after ten hours of star­ing at what seemed like a thou­sand dif­fer­ent hooks, I was just hap­py to release what I had and be done. Maybe in the future. :D

  74. This is amaz­ing! I was going to build anoth­er site using a dif­fer­ent theme, but now I’m con­vinced. First thing tomor­row I’ll be upgrad­ing to a devel­op­er license. All oth­er themes should just cease to exist — The­sis rules!

  75. I was won­der­ing if I could use “search box” with­in 404 page instead of error mes­sages. It seems to me Open­Hook can cus­tomize 404 page.

    1. You can include what­ev­er you want on the 404 page; check out this extreme exam­ple (in Open­Hook, use the code for “most oth­er Word­Press themes”).

      How­ev­er, to include The­sis’ search form, use this func­tion in OpenHook:

      <?php thesis_search_form(); ?>

      Not sure what the styling would like on it, but I’m sure it’s noth­ing a few style tweaks in your cus­tom stylesheet would­n’t handle.

  76. Hey Rick! Thanks for the plu­g­in update. I love it and am learn­ing more and more about using hooks. 

    Now I need a tuto­r­i­al on how to use the fea­ture box. (HINT, HINT) :-)

    Check out what I’ve done so far here:

    Sug­ges­tions wel­come, of course.

    1. Oops … I spoke too soon. Upgrad­ed. But have to revert to the pri­or ver­sion because no mat­ter what I do, new ver­sion will not exe­cute php below the head­er. I have checked the box and re-saved about a zil­lion times. Same result. I did­n’t make any changes oth­er than to upgrade the plu­g­in using the auto­mat­ic upgrade fea­ture in WP 2.7.1.

      1. Ah, I just real­ized what the prob­lem is. I have been using ver­sion 1.1. WP 2.7.1 is offer­ing an auto­mat­ic upgrade to ver­sion 2.0, not 2.0.1. That’s why I got the error which I not see you wrote about above. 

        My bad. I should not be doing this at mid­night, obviously.

        Thanks, Rick.

  77. Tell me! :) Where you could find such sup­port? You’re ask­ing polite­ly Mr. Beck­man to con­tin­ue the sup­port of the plu­g­in because it’s impor­tant for you, and in 48 hours he says: “Please receive ver­sion 2!” :)

    Thank you, Rick! Delet­ed the old direc­to­ry, uploaded the new one and it worked instant­ly, keep­ing all pre­vi­ous settings :)


  78. Rick:

    I find Open­Hook to be invalu­able to me when I’m design­ing for clients. For one thing, it speeds the devel­op­ment process, because I can try things and replace things more rapid­ly than if I was con­stant­ly mod­ding the css and php files. For anoth­er, it makes the changes more trans­par­ent to the client once the files are turned over to them. They still might not have the skills to imple­ment new changes them­selves, but it’s less intim­i­dat­ing for them if I send instruc­tions to add some­thing to Open­Hook than if I’d said add some­thing to the custom.php file. So, thanks!!

  79. Rick,
    Great update to 2.0 — extreme­ly great. One lit­tle thing though… pleeeeeeeease bring back the stretchy edit­ing box­es! They were a major part of my work­flow, they made my job 100% eas­i­er. They make the page short­er (not as much of a big deal now with the mul­ti­ple save but­tons) but more impor­tant­ly, I work far more effi­cient­ly when I can see a screen­ful of code rather than just 10 lines at a time.

    1. Did those work on Word­Press 2.7? Seems as though after I upgrad­ed, they stopped work­ing, and since Chris and I only sup­port Word­Press 2.7+ for The­sis, it did­n’t seem unrea­son­able to expect the same with OpenHook.

      If I can get a solu­tion work­ing in 2.7, I may add it back. How­ev­er, I’ll be hon­est and say that I have no idea how that JavaScript worked — I nev­er got past “Hel­lo world” in learn­ing JavaScript. The resiz­ing script was sim­ply car­ried over from the plu­g­in that Open­Hook was based on.

      1. They worked on WP 2.7, but nei­ther of the sites I’ve upgrad­ed Open­Hook on are run­ning WP 2.7.1, so maybe there’s some­thing going on there. I’m mod­er­ate­ly decent with javascript, I’ll poke around and see if I can spot any­thing and let you know if I find anything.

      2. Hey Rick, I fig­ured out a solu­tion. It’s not as slick as the pull-down method, but I think it works even bet­ter. I put two but­tons under each textarea — one but­ton adds 15 rows to the textarea, the oth­er con­tracts the textarea by 15 rows. I made a few oth­er minor changes relat­ed to this as well, and put a new options.php file up for you to down­load and check out if you like: Right click and save, then rename the phps file to php. I start­ed com­ment­ing on line 235 to explain every­thing I did in detail. No cred­it required if you decide to use my changes, just hap­py to help out.

  80. Thanks for a this great work rick! Two ques­tions though:

    1. Is there any easy way to be noti­fied when you’re updat­ing Open­Hook (i guess the auto-alert sys­tem built in word­press does­n’t work when you don’t host the plu­g­in in the repository)?

    2. Do you have any nice resources where I can find inspi­ra­tion for all the pos­si­bil­i­ties this plu­g­in gives us? Like the exam­ple for cus­tomiz­ing the footer.

    Thank you!

    1. The­sis is host­ed w/​ Word­Press, and you should be noti­fied when updates are available. :)

      As for resources… Well, skies the lim­it. You can use just about any markup or Word­Press code you could want in Open­Hook. Bet­ter to know what you want and ask for it then to be giv­en a ton of exam­ples of stuff you prob­a­bly don’t need, in my opin­ion anyway. :)

  81. Rick, hi. I think I’m a lit­tle con­fused as to what to put in some spot. for exam­ple, say I want to do the nav menu switch from top to bot­tom of head­er. What exact­ly do I enter into the textbox?


    1. The exact code to use is includ­ed in Open­Hook, list­ed along with the check­box for remov­ing the nav­i­ga­tion menu from “Above Header.” :)

  82. Anoth­er ques­tion Rick. I’m try­ing to put an adsense unit in the con­tent area.

    It shows up, but above the con­tent and is not aligned accord­ing to my CSS (float:left;)

    how would I put this in the con­tent area? Thanks again.

    1. What code are you using? There’s no rea­son some­thing like this should­n’t work:

      <div class="adsense_ad">YOUR ADSENSE CODE</div>

      …with this in your custom.css file:

      .adsense_ad { float: left; }
      1. I tried putting the code in the oth­er, but it had php in it. basi­cal­ly it calls…


        and uses the style you men­tion. hold on a sec… here’s how it’s resolving

        and the CSS I’m using is:

        #adsense_singlepost_top_square {
        float: left;
        margin-right: 10px;

        1. arrrg, ok so the code did­n’t show up. It’s putting the google ad right after the con­tent div and right before the post div.

                1. Per­fec­to!!!!! excel­lent man. worked like a charm. duh! clear!!! I shoul­da know that! Thanks Rick!

  83. Hi Rick,

    I’ve been try­ing to unzip this file and can­not. I’ve delet­ed it twice and reloaded but to no avail. Any suggestions?

    1. If you’re using Word­Press 2.7 or new­er (which is required to use The­sis and thus, Open­Hook as well), you can install the plu­g­in via the auto­mat­ed installer with­in Word­Press. No need to down­load the above file at all. :D

  84. Hi Rick,

    Not sure why, but I am run­ning WP 2.7.1 and upgrad­ed to your Open­hook 2.0 the day you released.

    The WP auto installer in my admin is not show­ing a 2.1 upgrade available.

    Any ideas as to what’s up? Should I just DL from here and upload?



    1. Ooh, my fault. I for­got to change the ver­sion in the plu­g­in file itself; no won­der the plu­g­ins direc­to­ry did­n’t con­sid­er my changes a new ver­sion! Thanks for let­ting me know; I prob­a­bly would nev­er have noticed this on my own.

      I fixed the over­sight, and the auto-update should appear soon-ish. How­ev­er, there’s no harm in doing a man­u­al update if you don’t want to wait. The only change is described in the changel­og in the post above, so it may not be a big deal at all for you not to imme­di­ate­ly upgrade. No harm either way.

      1. Awe­some… glad I decid­ed to point it out.

        In no rush, blog work­ing fine, so I will wait for the auto installer. Just love the new auto installer — so much easier!

        Thanks again,


  85. This NextGen Gallery short code [singlepic=1,188,141„right] does­n’t get processed but shows up where the image is sup­posed to be. Is there a way to use short codes with OpenHook?

    1. The option to parse short­codes… Now that’s a good fea­ture request! Thanks, dude!

      In the mean­time, you can get around that short­com­ing with this:

      $gallery = '[singlepic=1,188,141,,right]';
      $gallery_parsed = do_shortcode($gallery);
      echo $gallery_parsed;

      Make sure to select to parse that code on whichev­er box you’re using in Open­Hook. Let me know if that fails (and what the error is, if any).

      1. Does­n’t seem to be work­ing. I get [Sin­glePic not found] but the short code works fine when used on a Word­Press page. I just retest­ed it to make sure.

        1. I’m not too famil­iar with the [singlepic] short­code, but I’m bet­ting what’s hap­pen­ing is that it can only be used with­in the loop (read: with­in posts them­selves); out­side of the loop, the short­code has no idea which post it’s access­ing, which picture(s) it should be ref­er­enc­ing, and so on. Not sure. If I can fig­ure out how to trick it, I’ll let you know.

  86. Hey there Rick, just a side­note about a con­flict I found after upgrad­ing to 2.0.1 — I’m using the K2 theme while I cus­tomize my The­sis site. Well, Open­hook caus­es old­er post not to show up. I get some con­flict with capabilities.php line 920 — not sure if this would con­cern you too much, but thought you would like to know about it.

  87. I don’t know what I am doing wrong but I can’t get it to unzip. I have down­loaded many plu­g­ins for word­press and know what to do but when I try to unzip this plu­g­in it keeps telling me I already have a file with that name. the the­sis-open­hook file with 0kb gets loaded and the fold­er with the­sis-open­hook nev­er gets unzipped.
    any­body else have this prob­lem or am i alone

    1. The file works fine for me; how­ev­er, there’s no rea­son to down­load it. Just use the auto­mat­ed plu­g­in installer in Word­Press. Search for Open­Hook, and it’ll come up to be installed. Easy. :D

      1. thanks , got it. I have nev­er installed a plug-in that way. I like to have them on my sys­tem so I can slide them all over in one move on new sites but that works. thanks for the quick response.

        1. Once it’s installed via the auto­mat­ic installer, you can down­load it to your comp via file man­ag­er. Again, not sure why the down­load­able archive above does­n’t work… Does it work if you down­load it from Word­Press’ plug­in’s direc­to­ry? Their archives are auto­mat­i­cal­ly gen­er­at­ed, so it’ll be ever-so-slight­ly dif­fer­ent than the one I cre­at­ed and have avail­able above.

  88. Rick,
    Not sure what I did, but I had the open hook rock­ing and rolling at Then I upgrad­ed the open­hook to 2.0, and was run­ning a 1.3 some­thing on the­sis. I got error up the wazoo, so I unplugged the open hook and upgrad­ed the­sis to 1.4.2 and to 2.7.1 on wp
    I plugged in open hook and get
    Warn­ing: main(TEMPLATEPATH/lib/classes/options.php): failed to open stream: No such file or direc­to­ry in /home/content/m/o/b/mobrian/html/mifireservice/functions.php on line 22

    Fatal error: main(): Failed open­ing required ‘TEMPLATEPATH/lib/classes/options.php’ (include_path=’.:/usr/local/lib/php’) in /home/content/m/o/b/mobrian/html/mifireservice/functions.php on line 22
    Any ideas?

    1. Not sure why, but there is a functions.php file in the root of your site, which is not need­ed by Word­Press, The­sis, or Open­Hook. It’s the file throw­ing the error, so it’s being used by some­thing, which is odd. Try delet­ing it, see­ing what happens.

      1. Rick, that worked great, now I just have to fix some hooks that were lost. Not sure if I cod­ed some­thing wired, but I will get it up and run­ning, thanks for your help!

  89. Rick -

    Try­ing to put an image above the title “Home” on the home page only of test site Using Open­hook, I can get an image in about the right place by using the Before Con­tent space.
    How­ev­er, I do not know how to invoke the con­di­tion that the image should only show on the home page. I tried putting the code below in the Before Con­tent box:

    <?php if (is_​home()) { ?>
    <img src=“; alt=“480x270 test image” title=“480x2701” width=“480” height=“270” class=“size-full wp-image-232” />
    <p>Text before con­tent, not before con­tent BOX.</p>
    <?php } ?>

    and checked the box to ” Exe­cute PHP on this hook “. How­ev­er, the image does not show on any page. (The same test image also cor­rect­ly appears a few para­graphs down the page, cap­tioned as “480×270 test image”.)

    My even­tu­al goal is to get video(s) into the Before Con­tent loca­tion, on var­i­ous pages using con­di­tions. So it seemed to me that first I should try to learn how to place jpg images in the desired loca­tion, and lat­er I will work on place­ment of the video player. 

    If the error is appar­ent, please let me know.
    Thanks, — E.J.

    1. Word­Press’ con­di­tion­al tags are a bit con­fus­ing so far as their names go: If you’re using a page as a home page (rather than your blog) as you are doing, is_home() won’t work because is_home() always refers to the blog page. To tar­get your front page, whether it be the default or set to a cus­tom page, you should be using is_front_page(). Hope it works for ya. :D

      1. Rick -
        Thanks, it worked.
        I had not noticed, until after read­ing your com­ment above, that the test image was show­ing only on the “Blog” page. After mak­ing the change you rec­om­mend­ed, the test image shows on the home page and only on the home page.

        Thank you for your patience towards those of us in an ear­ly learn­ing mode.
        Best regards,
         — E.J.

  90. Hi Rick — I just want­ed to let you know about a lit­tle glitch I encoun­tered with 404 Title — if I enter this:

    and save, the 404 page looks fine, but the next time I see this in the 404 Title (one back­slash per quote):

    and after the next save I see this (two back­slash­es per quote):

    and then after the next save I see this (three back­slash­es per quote)

    at this point I start get­ting the expect­ed PHP error:
    Warn­ing: Unex­pect­ed char­ac­ter in input: ‘\’ (ASCII=92)

    1. Oops, I includ­ed the PHP tags and that is obvi­ous­ly a no-no. This is the 404 Title code I added:
      echo "Content Not Found";
      which got turned into
      echo \"Content Not Found\";
      and then
      echo \\"Content Not Found\\";
      and finally
      echo \\\"Content Not Found\\\";

  91. Hi Rick,

    Thank you for the plu­g­in, I should have start­ed using it months ago. I am cur­rent­ly re-doing my site at and have a quick ques­tion. I am putting a foot­er after each of posts and do not wan it to show up on the home page. I know I should be using if(is_single()) { some how but do not know how to apply. Any help would be appre­ci­at­ed. Thank you.

    1. Well, I could be more spe­cif­ic if I knew what foot­er code you were using, so I’ll just assume a basic para­graph. Try this out.

      <?php if (is_single()) { ?>
      <p>Your Footer Text Here</p>
      <?php } ?>

      That should do it.

  92. I have tried to insert the fol­low­ing google code into the “before com­ment meta” hook to no avail. I have enabled php, but noth­ing ever shows up.

      1. 10 – 4

        How’s this:
        if (is_​page() )
        { ?>
        <script type=“text/javascript”><!–
        google_​ad_​client = “pub-22222222222222”;
        /​* 468×60, cre­at­ed 2/​17/​09 */​
        google_​ad_​slot = “1694247595”;
        google_​ad_​width = 468;
        google_​ad_​height = 60;
        /​/​ – >
        <script type=“text/javascript”
        <?php }

        1. Much bet­ter. :) Now, with that, what’s the link to your site? I like to try to see things “live” if at all pos­si­ble… Helps me to visu­al­ize a solution.

  93. Heads up, every­one: If you’re part of the elite group of legit­i­mate The­sis users (i.e., your copy isn’t pirat­ed), you can now get Open­Hook sup­port in a nice, orga­nized envi­ron­ment on the DIYthemes sup­port board. :D

  94. Rick,

    Thanks a ton for cre­at­ing this! I need a lit­tle (actu­al­ly a lot) of guid­ance. My home page acts as a blog but I want to have spe­cif­ic bit of info show up pri­or to the begin­ing of the blog entries, not to be con­fused with info that shows up on every blog post. For exam­ple, the page would look like this:

    - Sta­t­ic text that does­n’t move (kind of an intro to the site)
     — Blog entry 1
     — Blog entry 2
     — .….….….….

    Under­stand what I’m get­ting at? Any idea how that can be done?

    1. Hey, Ryan. Glad you enjoy Open­Hook! To add con­tent before the posts on the home page, use the “Before Con­tent” box, but wrap your code like this:

      <?php if (is_home()) { ?>
      <?php } ?>