[theme-reviewers] Use of Action/Filter Hooks in WordPress Theme

Qamar Ashraf life.object at gmail.com
Tue Jul 26 14:30:57 UTC 2011


Thanks Chip,

I also love hooks and *Oenology 2.0* is an excellent example of hooks. But i
am also thinking about end-user flexibility who have not much more idea
about using them. So, i was thinking about the complexity of code before
submitting to the WordPress directory. Okay, what you prefer in the
following two code snippets in terms of,

   - Simplicity for End Users who have little idea about Child Themes.
   - Code efficiency.

*1. Action Approach:*

<?php do_action( 'chip_header_pre' ); ?>
>   <div id="header">
>     <div id="header-data">
>       <?php do_action( 'chip_header' ); ?>
>     </div> <!-- end #header-data -->
>   </div> <!-- end #header -->
> <?php do_action( 'chip_header_post' ); ?>


*2. Simple Approach:*

<?php get_template_part( 'nav', 'primary' ); ?>
>   <div id="header">
>     <div id="header-data">
>       <?php get_template_part( 'header', get_chip_header_format() ); ?>
>       <div class="clear"></div>
>     </div> <!-- end #header-data -->
>   </div> <!-- end #header -->
> <?php get_template_part( 'nav', 'secondary' ); ?>



You can guess better the complexity of hooks in the loop :)

Regards


On Tue, Jul 26, 2011 at 7:14 PM, Chip Bennett <chip at chipbennett.net> wrote:

> Personally, I think action/filter hooks are Teh Awesome. I also use them,
> quite extensively<https://github.com/chipbennett/oenology/blob/master/functions/hooks.php>
> .
>
> But I'm not really sure what you're asking?
>
> Are they acceptable? Of course; provided they are implemented properly, per
> the appropriate API conventions.
>
> Are they best practice? In my personal opinion, they are; I prefer them to,
> e.g. pluggable functions. But at least currently, the Guidelines are silent
> on custom hooks.
>
> (p.s. you should prefix your hooks with theme_slug, or at the very least,
> make sure your hook-name prefixes are consistent with the rest of the Theme
> - which, IIRC, is Chip Life, or "chip_life" as a prefix?)
>
> Chip
>
> On Tue, Jul 26, 2011 at 8:08 AM, Qamar Ashraf <life.object at gmail.com>wrote:
>
>> Hello,
>>
>> I am going to share my WordPress Theme development logic for an expert
>> opinion. So it will help me and others in the WP theme development, Here is
>> a sample code of header template,
>>
>>  <?php do_action( 'chip_header_pre' ); ?>
>>>   <div id="header">
>>>     <div id="header-data">
>>>       <?php do_action( 'chip_header' ); ?>
>>>     </div> <!-- end #header-data -->
>>>   </div> <!-- end #header -->
>>> <?php do_action( 'chip_header_post' ); ?>
>>
>>
>>
>> - I have written different modules like, Primary Menu, Secondary Menu etc.
>> - So i can easily attach these modules to any hook with add_action(),
>> depending on the requirement/presentation of a them/child theme.
>>
>> *Child Theme A Example*
>>
>> add_action('chip_header_pre', 'chip_primary_menu_init');
>> add_action('chip_header_post', 'chip_secondary_menu_init');
>>
>> *Child Theme B Example*
>>
>> add_action('chip_header_pre', 'chip_secondary_menu_init');
>> add_action('chip_header_post', 'chip_primary_menu_init');
>>
>> Both of above child themes will have different presentation of menus, with
>> just a single line of code, and there may any other combination as well.
>>
>> *So what is the recommendation of experts to have this logic ?*
>>
>> --
>> Regards
>> Qamar Ashraf
>> www.tutorialchip.com
>> @lifeobject1
>>
>>
>> _______________________________________________
>> theme-reviewers mailing list
>> theme-reviewers at lists.wordpress.org
>> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>
>>
>
> _______________________________________________
> theme-reviewers mailing list
> theme-reviewers at lists.wordpress.org
> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>
>


-- 
Regards
Qamar Ashraf
www.tutorialchip.com
@lifeobject1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wordpress.org/pipermail/theme-reviewers/attachments/20110726/b27d9a2f/attachment.htm>


More information about the theme-reviewers mailing list