The OP and related suggestions should all be fine to be put forward as a &quot;best practice&quot; recommendation to minimize the impact Themes options have on the database. A &quot;rule&quot; to the effect that &quot;Themes should have minimal impact on the database&quot; may be more generic but also better encompassing of the recent issues that have been seen, especially those issues with the Theme Previewer.<br>

<br>I think once we see this idea more in use, and pin down some of the finer details with actual use cases, we will be better able to look at pushing up its priority / significance in the Theme Review Guidelines to the level of a requirement.<br>

<br><br>Cais.<br><br><div class="gmail_quote">On Mon, Jun 13, 2011 at 1:34 AM, Syahir Hakim <span dir="ltr">&lt;<a href="mailto:khairulsyahir@gmail.com">khairulsyahir@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Er...why not just delete_option(&#39;option_name&#39;); ?<div class="im"><br>
<br>
-- <br>
Regards,<br>
Syahir Hakim<br>
<br>
Contact:<br>
<a href="http://www.khairul-syahir.com" target="_blank">http://www.khairul-syahir.com</a><br>
<a href="tel:%2B6421%200333%20649" value="+64210333649" target="_blank">+6421 0333 649</a><br>
<br>
<br></div><div class="im">
On 13/6/2011 5:26 PM, Emil Uzelac wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Just out of the curiosity.<br>
<br>
Would simple reset button via wpdb query <a href="http://codex.wordpress.org/Class_Reference/wpdb" target="_blank">http://codex.wordpress.org/Class_Reference/wpdb</a> be an easier idea to clean/delete data set in Theme Options? Similar to <a href="http://themeshaper.com/2010/06/03/sample-theme-options/#comment-57597" target="_blank">http://themeshaper.com/2010/06/03/sample-theme-options/#comment-57597</a> which is:<br>


<br>
if( isset( $_REQUEST[&#39;reset&#39;] )) {<br>
global $wpdb;<br>
$query = &quot;DELETE FROM $wpdb-&gt;options WHERE option_name LIKE &#39;option_name&#39;&quot;;<br>
$wpdb-&gt;query($query);<br>
header(&quot;Location: themes.php?page=theme_options&quot;);<br>
die;<br>
}<br>
<br>
This is copy pasted not sure if this works, but you&#39;ll get the idea.<br>
<br>
Cheers,<br>
Emil<br>
<br>
----<br></div>
*Emil Uzelac* | ThemeID | T: <a href="tel:224-444-0006" value="+12244440006" target="_blank">224-444-0006</a> | Twitter: @EmilUzelac | E: <a href="mailto:emil@themeid.com" target="_blank">emil@themeid.com</a> &lt;mailto:<a href="mailto:emil@themeid.com" target="_blank">emil@themeid.com</a>&gt; | <a href="http://themeid.com" target="_blank">http://themeid.com</a> &lt;<a href="http://themeid.com/" target="_blank">http://themeid.com/</a>&gt;<div class="im">

<br>
Make everything as simple as possible, but not simpler. - Albert Einstein<br>
<br>
<br>
<br></div><div class="im">
On Sun, Jun 12, 2011 at 11:43 PM, Chip Bennett &lt;<a href="mailto:chip@chipbennett.net" target="_blank">chip@chipbennett.net</a> &lt;mailto:<a href="mailto:chip@chipbennett.net" target="_blank">chip@chipbennett.net</a>&gt;&gt; wrote:<br>


<br>
    Themes ideally would use a *delete* hook, not a deactivation hook, for<br>
    database cleanup.<br>
<br>
    Chip<br>
<br>
    On 6/12/11, Sayontan Sinha &lt;<a href="mailto:sayontan@gmail.com" target="_blank">sayontan@gmail.com</a><br></div><div><div></div><div class="h5">
    &lt;mailto:<a href="mailto:sayontan@gmail.com" target="_blank">sayontan@gmail.com</a>&gt;&gt; wrote:<br>
    &gt; I would like to add to Justin&#39;s suggestion and highlight that<br>
    the uninstall<br>
    &gt; hook should be treated differently from the deactivation hook.<br>
    &gt;<br>
    &gt; The problem with forcing cleanup on a deactivation hook is that<br>
    occasionally<br>
    &gt; the WP servers hand out bad copies of themes (I have had that<br>
    happen quite a<br>
    &gt; few times on my theme, where users sporadically report broken<br>
    downloads -<br>
    &gt; the fix involved Otto rebuilding the download on the faulty server).<br>
    &gt; Depending on what got downloaded, WP either automatically<br>
    deactivates the<br>
    &gt; theme (e.g. missing or broken style.css) and defaults to<br>
    TwentyTen, or the<br>
    &gt; user gets a white screen (missing or broken functions.php). In<br>
    the former at<br>
    &gt; least, having a deactivation hook do cleanups is fraught with<br>
    the user<br>
    &gt; losing hours of work, because the switch to TwentyTen happens<br>
    without the<br>
    &gt; user intending to do it.<br>
    &gt;<br>
    &gt; Hence cleanup of options should be introduced only upon<br>
    uninstall, and not<br>
    &gt; deactivation.<br>
    &gt;<br>
    &gt; On Mon, Jun 13, 2011 at 8:10 PM, Justin Tadlock<br></div></div>
    &gt; &lt;<a href="mailto:justin@justintadlock.com" target="_blank">justin@justintadlock.com</a> &lt;mailto:<a href="mailto:justin@justintadlock.com" target="_blank">justin@justintadlock.com</a>&gt;&gt;wrote:<div><div>

</div><div class="h5"><br>
    &gt;<br>
    &gt;&gt; **<br>
    &gt;&gt; The problem with themes cleaning up after themselves is simply that<br>
    &gt;&gt; there&#39;s<br>
    &gt;&gt; no uninstall hook.  Once we get that (plus some activate/deactivate<br>
    &gt;&gt; hooks),<br>
    &gt;&gt; I&#39;d have no problem in setting some repository rules for themes<br>
    to delete<br>
    &gt;&gt; options on uninstall.<br>
    &gt;&gt;<br>
    &gt;&gt; As far as using the $default parameter of get_option() and not<br>
    setting<br>
    &gt;&gt; defaults, that can be good practice.  However, I see no reason<br>
    themes<br>
    &gt;&gt; shouldn&#39;t be setting up some defaults using add_option().  Of<br>
    course,<br>
    &gt;&gt; there&#39;s no activation hook, so some theme authors are just<br>
    dropping some<br>
    &gt;&gt; code into functions.php instead of using a hook<br>
    (load-themes.php might be<br>
    &gt;&gt; a<br>
    &gt;&gt; good one) to auto-set default options.<br>
    &gt;&gt;<br>
    &gt;&gt;<br>
    &gt;&gt; On 6/12/2011 10:06 PM, Emil Uzelac wrote:<br>
    &gt;&gt;<br>
    &gt;&gt; Or for future release of WP when Theme is deleted all that was<br>
    associated<br>
    &gt;&gt; with that specific Theme gets deleted as well. Not all Authors<br>
    will comply<br>
    &gt;&gt; with WP guides and not all Themes are downloaded from the<br>
    repository.<br>
    &gt;&gt;<br>
    &gt;&gt;  ----<br>
    &gt;&gt; *Emil Uzelac* | ThemeID | T: <a href="tel:224-444-0006" value="+12244440006" target="_blank">224-444-0006</a> | Twitter:<br>
    @EmilUzelac | E:<br></div></div>
    &gt;&gt; <a href="mailto:emil@themeid.com" target="_blank">emil@themeid.com</a> &lt;mailto:<a href="mailto:emil@themeid.com" target="_blank">emil@themeid.com</a>&gt; | <a href="http://themeid.com" target="_blank">http://themeid.com</a><div class="im">

<br>
    &gt;&gt; Make everything as simple as possible, but not simpler. -<br>
    Albert Einstein<br>
    &gt;&gt;<br>
    &gt;&gt;<br>
    &gt;&gt;<br>
    &gt;&gt; On Sun, Jun 12, 2011 at 10:03 PM, Angelo Bertolli &lt;<br></div>
    &gt;&gt; <a href="mailto:angelo.bertolli@gmail.com" target="_blank">angelo.bertolli@gmail.com</a> &lt;mailto:<a href="mailto:angelo.bertolli@gmail.com" target="_blank">angelo.bertolli@gmail.com</a>&gt;&gt;<div><div></div>

<div class="h5"><br>
    wrote:<br>
    &gt;&gt;<br>
    &gt;&gt;&gt; On 6/12/2011 10:59 PM, Syahir Hakim wrote:<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt;&gt; I don&#39;t think it&#39;s only the theme reviewers who are<br>
    installing and<br>
    &gt;&gt;&gt;&gt; trying a lot of themes. It is not unusual at all for regular or<br>
    &gt;&gt;&gt;&gt; first-timer WP users to try a lot of themes before they<br>
    settle on one<br>
    &gt;&gt;&gt;&gt; that they really like. Trying more than 10 themes is quite<br>
    normal for a<br>
    &gt;&gt;&gt;&gt; first-timer WP user, I think, and some of my theme users even<br>
    reported<br>
    &gt;&gt;&gt;&gt; that they&#39;ve tried 40+ themes.<br>
    &gt;&gt;&gt;&gt;<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt;  It sounds like WP should have a way of forcing options to be<br>
    associated<br>
    &gt;&gt;&gt; with their themes, and cleanup options that are independant of<br>
    theme<br>
    &gt;&gt;&gt; code.<br>
    &gt;&gt;&gt;  For example add_option would automatically associate the<br>
    option with a<br>
    &gt;&gt;&gt; particular theme, maybe by directory name.  Then after such a<br>
    theme no<br>
    &gt;&gt;&gt; longer exists or is deactivated, WP presents an option to<br>
    &quot;clean up theme<br>
    &gt;&gt;&gt; options for theme X&quot;<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt;<br>
    &gt;&gt;&gt; _______________________________________________<br>
    &gt;&gt;&gt; theme-reviewers mailing list<br>
    &gt;&gt;&gt; <a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a><br></div></div>
    &lt;mailto:<a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a>&gt;<div class="im"><br>
    &gt;&gt;&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
    &gt;&gt;&gt;<br>
    &gt;&gt;<br>
    &gt;&gt;<br>
    &gt;&gt; _______________________________________________<br>
    &gt;&gt; theme-reviewers mailing<br>
    &gt;&gt;<br>
    listtheme-reviewers@lists.wordpress.orghttp://<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
    &lt;<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a>&gt;<br>
    &gt;&gt;<br>
    &gt;&gt;<br>
    &gt;&gt; _______________________________________________<br>
    &gt;&gt; theme-reviewers mailing list<br>
    &gt;&gt; <a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a><br></div>
    &lt;mailto:<a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a>&gt;<div class="im"><br>
    &gt;&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
    &gt;&gt;<br>
    &gt;&gt;<br>
    &gt;<br>
    &gt;<br>
    &gt; --<br>
    &gt; Sayontan Sinha<br>
    &gt; <a href="http://mynethome.net" target="_blank">http://mynethome.net</a> | <a href="http://mynethome.net/blog" target="_blank">http://mynethome.net/blog</a><br>
    &gt; --<br>
    &gt; Beating Australia in Cricket is like killing a celebrity. The<br>
    death gets<br>
    &gt; more coverage than the crime.<br>
    &gt;<br>
<br>
    --<br>
    Sent from my mobile device<br>
    _______________________________________________<br>
    theme-reviewers mailing list<br>
    <a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a><br></div>
    &lt;mailto:<a href="mailto:theme-reviewers@lists.wordpress.org" target="_blank">theme-reviewers@lists.wordpress.org</a>&gt;<div class="im"><br>
    <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
<br>
<br>
<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>
</div></blockquote><div><div></div><div class="h5">
_______________________________________________<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>
</div></div></blockquote></div><br>