<div dir="ltr">Makes sense.<div><br></div><div>I hope you didn't read my original question with a sarcastic, I know better, connotation. I was genuinely curious.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Sun, Dec 22, 2013 at 8:43 PM, Chip Bennett <span dir="ltr"><<a href="mailto:chip@chipbennett.net" target="_blank">chip@chipbennett.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">Bear in mind: Child Themes are intended to make Theme modification easier/more future-proof for *end users* first and foremost - via simple CSS and template/markup overrides. They're quite useful for developers, but developers aren't the primary target use case for Child Themes.<div>


<br></div><div>Developers have the option to make use of Pluggable functions, custom action and filter hooks, or even forking a Theme. Requiring the original Theme developer to implement Pluggable functions for any or all Theme functions, merely to facilitate downstream developers, constrains original-Theme developers far more than would be reasonable.</div>


</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Dec 22, 2013 at 8:31 PM, Josh Pollock <span dir="ltr"><<a href="mailto:jpollock412@gmail.com" target="_blank">jpollock412@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">@chip- That's a reasonable argument that I buy in the sense that not all functions should be pluggable. The fact that I can bust a parent theme with a messed up function override in the child theme is my problem as a developer though. </div>


<div><div>

<div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Dec 22, 2013 at 4:35 PM, Chip Bennett <span dir="ltr"><<a href="mailto:chip@chipbennett.net" target="_blank">chip@chipbennett.net</a>></span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That's a development decision. Not all functions are intended to be Pluggable, and wholesale overriding of some functions would cause the Theme to break entirely.<div>




<br></div><div>Making functions Pluggable isn't recommended, much less best-practice. (Notice that core is moving away from Pluggable functions as well.) It's strictly the purview of the developer to determine whether functions should be Pluggable or to have their output filterable.</div>





</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Sun, Dec 22, 2013 at 3:43 PM, Josh Pollock <span dir="ltr"><<a href="mailto:jpollock412@gmail.com" target="_blank">jpollock412@gmail.com</a>></span> wrote:<br>





</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><br></div>Why don't we require that all functions be wrapped in if ( ! function_exists( 'function_name') ) : wrappers? It seems to me like requiring this would make child themeing easier as a all functions from a parent theme could be easily over ridden from a child theme. Yes, I realize you can use remove_action and remove_filter but what about functions not hooked to filters or actions?<div>







<br></div><div>I'm wondering if there is a reason for this or if my logic is flawed.</div><div><br></div><div>Thanks,</div><div>Josh</div></div>
<br></div></div><div>_______________________________________________<br>
theme-reviewers mailing list<br>
<a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a><br>
<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
<br></div></blockquote></div><br></div>
<br>_______________________________________________<br>
theme-reviewers mailing list<br>
<a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a><br>
<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
theme-reviewers mailing list<br>
<a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a><br>
<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
theme-reviewers mailing list<br>
<a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
<br></blockquote></div><br></div>