<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Spectacu.la - Free GPL WordPress Themes Club &#187; Plugins</title>
	<atom:link href="http://spectacu.la/category/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://spectacu.la</link>
	<description>WordPress GPL Themes and Support Forum</description>
	<pubDate>Tue, 20 Jul 2010 10:27:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Better, Faster WordPress Search</title>
		<link>http://spectacu.la/better-faster-wordpress-search/</link>
		<comments>http://spectacu.la/better-faster-wordpress-search/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 16:01:44 +0000</pubDate>
		<dc:creator>James Whitehead</dc:creator>
		
		<category><![CDATA[Plugins]]></category>

		<category><![CDATA[better search]]></category>

		<category><![CDATA[faster wordpress search]]></category>

		<category><![CDATA[indexing]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://spectacu.la/?p=131</guid>
		<description><![CDATA[The default WordPress search is an inefficient, slow drain on database resources - this plugin gives faster, more relevant results.  Try it!]]></description>
			<content:encoded><![CDATA[<p>The default WordPress search tool is fine for low-traffic sites or those with relatively limited content.  But it&#8217;s a limited system.  So limited, in fact, that even <a title="Mr Mullenweg" href="http://ma.tt">Matt Mullenweg</a>, one of WP&#8217;s founder developers, actually uses Google Search on his own website.  So if you want more relevant search results, a lighter database load, and better performance for large or highly trafficked sites then this may well be what you need.</p>
<p>To download and install you can either scroll down and find the download button at the bottom of this article, or you will soon be able to auto-install from the WP back-end.</p>
<p><em>Do be aware that this is quite a database heavy and complex plugin - it should work well on most installs, but it&#8217;s not for everybody and we hold no responsibility for any problems caused.  Consider taking a back-up before implementation.</em><span id="more-131"></span></p>
<h2>The Techie Stuff, If You Need It&#8230;</h2>
<p>This plug-in provides you with more relevant search results than are currently available to the normal Wordpress search and it should also do so with less of a performance hit on the db than the normal Wordpress search. Instead of the use of LIKE &#8220;%term%&#8221; we use the MySQL commands MATCH () AGAINST () to do our queries which are not as heavy on the db, the only issue we have with “match against” is that we need an index on the columns we intend to search on.</p>
<h3>Installation</h3>
<ol>
<li>Upload &#8220;spec-adv-search&#8221; folder to &#8220;/wp-content/plugins/spec-adv-search/&#8221; or  the content of the folder to &#8220;/wp-content/mu-plugins/&#8221;. If the directory doesn&#8217;t exist then create  it.</li>
<li>Activate the plugin through the &#8216;Plugins&#8217; menu in WordPress.</li>
<li>You  should now see an extra control panel called &#8220;Advanced search&#8221; which will show up under the  settings menu in the main admin sidebar.</li>
<li>You will need to go in and enable the plugin here before it takes over - otherwise you&#8217;ll just be using the old-style search.</li>
</ol>
<h3>Configuration</h3>
<p>For these search methods to work we need a FULLTEXT index on your  post_content and post_title in the wp_posts table. This is done by  using the &#8220;<strong>create index</strong>&#8221; button. There are some things to be aware of  before you proceed.</p>
<ol>
<li>Adding the index will likely double the size of your wp_posts table, this in and of itself isn’t a problem however if you’re running up against	the upper limits of your hosts allowed size then creating an index may push you over that limit. If you do hit your size limit nothing bad should happen but it would be best if you backed up your database first just in case. Always a good idea to run a backup before anything is done to change the db.</li>
<li>The index creation is handled by a Wordpress cron job, some hosts have problems with wp_cron and if your host is one of those then you will see this “The index creation/deletion is scheduled to start after {date and time}” below the button for a long time after the job was supposed to run. Don’t worry if it’s only a few mins as that is quite normal if you have a number of cron jobs ahead of it in the queue. If you do have a problem with wp_cron on your server you may also find future dated posts don’t become live when you hoped. There is an option to disable the use of cron toward the bottom of the page, if used you&#8217;ll have to do table optimisation manually. Or we can, if you have something like PHPMyAdmin, create the indexes manually by running these commands against your Wordpress db:
<pre>CREATE FULLTEXT INDEX spec_post_content_fulltext ON wp_posts (post_content);</pre>
<pre>CREATE FULLTEXT INDEX spec_post_content_fulltext_title ON wp_posts (post_title);</pre>
</li>
<li>Creating the indexes could take quite some time depending upon your server set up, amount of content you have, the mood your server is in, the load on it and probably a load of other reason too. Once the index creation kicks in, unless your server creates the index so quickly that it completes the creation before the command to collect the status has run, you should see “Creating index on post_&#8212;&#8211;. MySQL is returning the following message:” Don’t panic if you see something like “<strong>repair by sorting</strong>” or “<strong>copy to tmp table</strong>” as these are expected messages but if you get “<strong>Repair with keycache</strong>” still don’t panic just be prepared to wait a long while for the index to complete its creation.</li>
</ol>
<p>Once the index is live you should be able to tick the enable button. Now we get to choose from up to 5 different modes of search:</p>
<ol>
<li>Default mode: This will find posts containing any of the term, the more of the terms there are in a post the higher relevance score it receives and thus the higher in the results it will appear (presuming sorting by rank). If two or more terms are searched for but only one can be found then posts matching that one will be returned. Terms matched in titles count as one and a half as much as those in the content.</li>
<li>Boolean mode: Very much the same as default mode but you get several extra operators that can alter a query. Adding + or – to the head of a term will either make it so that you return posts that must have the term or must not have the term. &gt; or &lt; will increase or decrease the importance of a word. So for example (phone &gt;droid) would find all phone post and droid post but droid posts would be considered more important. A full explanation of the operators can be found here.</li>
<li>With query expansion: This kind of search can find posts related to your search terms but don’t necessarily contain any of the terms entered. So search for “android” for example and it will use posts that contain the word android to find words that are related to it. So it may deem that you want posts about robots too or it may also figure you want post relating to Google’s phone OS it really depends upon your sites content. For this mode you’ll need to tweak the relevance limit bases on what has been returned for your content otherwise it can end up returning all posts on your site. Not too big a problem if ordered by relevance but if ordered by date your results will make no sense at all.</li>
<li>In natural language mode: If you have MySQL 5.1 or better you will have two more modes available to you. First is In natural language mode which is mostly the same as default mode and in natural language more with query expansion which is functionally the same as the with query expansion.</li>
</ol>
<p>If your server works with wp_cron then you can set up a periodic table optimise that will help keep your table index in order. If your site changes rarely then you can set it to run infrequently or not at all and just use the “optimise table” button to do it as and when you want/need to. The more accurate your index is the better your search results will be and the lower the load on the db. All good basically. The optimise will kick in after the time it is set to run but wp-cron requires a visitor to kick off the job. So if you set it to start at 3:00am and you don’t get an activity on your site until 10am the next day the job won’t start until 10am. This shouldn’t be a problem as most optimisations apply very little load and take only a few second to run.</p>
<h4>Something to know.</h4>
<p>With query expansion mode you can sometimes return some odd results, especially on a smaller dataset. This mode guesses what the searcher was after from words MySQL thinks are related to the terms searched for. If your content implies an association between two otherwise unrelated terms then MySQL will make an assumption that they are related. For example if you mention Ducks and Strawberries together in a few post your index will see a relationship and searches for Ducks may return results for Strawberries.</p>
<p><a class="theme_download" href="http://spectacu.la/downloads/gpl/spec-adv-search.zip">Download Plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spectacu.la/better-faster-wordpress-search/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Spectacu.la Discuss ( Previously: Threaded Comments )</title>
		<link>http://spectacu.la/spectacula-threaded-comments/</link>
		<comments>http://spectacu.la/spectacula-threaded-comments/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 18:08:20 +0000</pubDate>
		<dc:creator>James Whitehead</dc:creator>
		
		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://spectacu.la/?p=127</guid>
		<description><![CDATA[Once installed this plug-in will replace your theme&#8217;s comments template with its own. Giving you threading, pagination and jQuery based roll up of subordinate comments this allows you to keep things tidy. The roll up can be told to trigger at any depth you feel is best using the comments page under appearance. Also available [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://spectacu.la/wp-content/uploads/screenshot-1.jpg"><img class="alignright size-medium wp-image-129" title="Light and Dark" src="http://spectacu.la/wp-content/uploads/screenshot-1-279x300.jpg" alt="Comments have two colour modes, light and dark" width="279" height="300" /></a>Once installed this plug-in will replace your theme&#8217;s comments template with its own. Giving you threading, pagination and jQuery based roll up of subordinate comments this allows you to keep things tidy. The roll up can be told to trigger at any depth you feel is best using the comments page under appearance. Also available on the plug-in&#8217;s admin page is the option to use the other included stylesheet that&#8217;s more appropriate for dark hued themes. You can also tell it to use no stylesheet at all. This is handy if you want to roll it into your themes stylesheet to cut down the number of HTTP requests a visitor makes, useful on busy sites.<span id="more-127"></span></p>
<p>This could also be useful for theme builders as you&#8217;d not have to worry about your comments.php again, Comments.php is one of the more complicated elements of any theme. And don&#8217;t worry about only being able to use the stylesheets provided or having to hack the plug-in after every update, I&#8217;ve included three filters to allow you to replace the jQuery and the stylesheet with something of your own.</p>
<p>The filters</p>
<ol>
<li><strong>spec_comment_css </strong>This will pass the URL of the stylesheet through to your function to replace with your own file.</li>
<li><strong>spec_comment_js</strong> The will pass the URL to the jQuery file that controls the roll up and a few other elements.</li>
<li><strong>spec_comment_local_js</strong> This will pass in an array of localisation strings that are passed to the jQuery code.</li>
</ol>
<p>To replace the CSS file you could add something like the following to your functions.php that would point to a comments.css file in the folder of your current theme.</p>
<pre>&lt;?php
add_filter('spec_comment_css', 'my_css_file');

function my_css_file() {
return get_bloginfo('template_directory') . '/comments.css';
}

?&gt;</pre>
<p><strong>Warning</strong><br />
Some themes will fail to work with this without you doing something to them first. Such as if the theme doesn&#8217;t call the comments.php using the <strong>comments_template();</strong> template tag or if your theme deals with comments in an unusual way, such as placing them in a sidebar or calling them in using Ajax. A missing or unusual DOCTYPE could cause problems too, in fact there are lots of things that could cause strangeness. However with most of the themes I&#8217;ve tested this with it has worked without issue straight out of the gate and even if it doesn&#8217;t look right you need only disable the plug-in to go back to how things were so nothing lost.</p>
<h3>The install</h3>
<ol>
<li>Upload {commenting.php} and all sub folders to {/wp-content/plugins/spec-comments/} or {/wp-content/mu-plugins/} directory. If the directory doesn&#8217;t exist then create it.</li>
<li>Activate the plugin through the &#8216;Plugins&#8217; menu in WordPress.</li>
<li>You should now see an extra menu called comments show up under the appearance menu in the main admin sidebar.</li>
<li>Check a page on your site with comments and see that everything is as you&#8217;d hope.  If it&#8217;s not then proceed to the config menu and see if what you want can be set from there.</li>
</ol>
<h3>The config</h3>
<ol>
<li>The main option with this plug-in is the option to define at which point the comments roll up. Default is set so that all replies are hidden behind a click but with the drop down you could specify that replies to replies are hidden or replies to replies of replies and so on&#8230;</li>
<li>The next group of options are some simple toggles and the first of these lets you turn off the plug-in&#8217;s CSS file. This can be handy if you want to keep all CSS in the one stylesheet thus reducing the number of HTTP requests or if you just want to style it up in your own way. If you turn off the style anything attached to the spec_comment_css filter will fail to run also.</li>
<li>As an extra to the one above we have the option to turn on the dark version of the comments. This is handy if your theme is, well err.., dark.</li>
<li>If you&#8217;d rather drop all the javaScript then the next option is for you. Be warned however that this will cause some styling issues in IE6 as jQuery is used to add some extra classes to items that would otherwise be inaccessible to IE6&#8217;s limited understanding of CSS. All other browsers are unaffected and IE6 will still be in a perfectly acceptable state it just won&#8217;t look the same as the other real browsers. Much the same as for the CSS, if you turn it off anything attached to the spec_comment_js or spec_comment_local_js filter will not be run.</li>
<li>The final option is to hide our credit link and is one we&#8217;d rather you didn&#8217;t do anything with but we&#8217;ve given you it anyway as we&#8217;re nice like that. We do understand that sometimes clients want things like that gone we&#8217;d just like to ask in return for that is that you think about signing up with us</li>
</ol>
<h3><sup style="color:red">*</sup>Frequently Asked Questions</h3>
<p><strong>Why doesn&#8217;t it quite look/work right?</strong> Unfortunately it&#8217;s not possible for us to check this code against every theme out there so from time to time you may run into some incompatibilities. It&#8217;s possible that some CSS in your theme&#8217;s style.css is causing issues. You could try stripping out all commenting related CSS from it and see if that makes any difference. If it&#8217;s not that then it might be that your theme isn&#8217;t calling <strong>comments_template() </strong>to add the comments code, if that&#8217;s the case then you&#8217;re out of luck unless you know where to look in the theme code or you can get your theme developer to change their theme.</p>
<p><small style="font-weight:bold"><sup style="color:red">*</sup>Well questions that I think might be frequently asked.</small></p>
<p><a href="http://spectacu.la/downloads/gpl/spec-comments.2.zip">Download Plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spectacu.la/spectacula-threaded-comments/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Search and Replace for WordPress Databases</title>
		<link>http://spectacu.la/search-and-replace-for-wordpress-databases/</link>
		<comments>http://spectacu.la/search-and-replace-for-wordpress-databases/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 12:24:26 +0000</pubDate>
		<dc:creator>Dave Coveney</dc:creator>
		
		<category><![CDATA[Plugins]]></category>

		<category><![CDATA[migrations]]></category>

		<category><![CDATA[serialized php]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://spectacu.la/?p=124</guid>
		<description><![CDATA[WordPress commits the sin (my view only!) of storing serialized PHP arrays as database strings.  That makes search and replaces on a database exceptionally tricky, which is a big problem if you're doing a migration, or need to change a lot of items quickly.  This plugin helps resolve that problem.]]></description>
			<content:encoded><![CDATA[<p>WordPress makes, in my opinion, the sin of storing serialized PHP data in the database. In my view using databases to store non-platform-agnostic information is always dangerous, but then I spent half my career working on cross-platform code and databases, so perhaps it&#8217;s just me.<span id="more-124"></span></p>
<p><a href="http://spectacu.la/wp-content/uploads/searchreplace.jpg"><img class="alignright size-medium wp-image-126" title="searchreplace" src="http://spectacu.la/wp-content/uploads/searchreplace-179x300.jpg" alt="The code in action." width="179" height="300" /></a>Anyway, this always presented a problem for those of us migrating WordPress databases or even, just needing to do a quick search and replace across the entire database. For example, you might have moved office and wish to change all instances of your phone number on a website. It could be mentioned in a lot of posts, and in plugin settings.</p>
<p>And that&#8217;s why we wrote this little utility. In this incarnation if you drop it into your root folder it will pick up the WordPress DB connection settings, but if you wish to play safe and run the code elsewhere you&#8217;ll have to go into the code and set these yourself.</p>
<p>Ultimately you do have to be careful. This code can seriously damage the health of your database. It will cheerfully spend just a few seconds reducing your settings to rubble. So make sure you BACKUP FIRST!</p>
<p>To see how you can use this tool to aid migrations, check out the <a href="http://www.interconnectit.com/719/migrating-a-wordpresswpmubuddypress-website/">Interconnect IT article on WordPress migrations</a>.</p>
<p class="taxonomy">If you are in any doubt whatsoever about how to use this plugin, then please consider getting an expert in. You could even contact us over at <a href="http://www.interconnectit.com">Interconnect IT</a>.</p>
<p><a class="theme_download" href="http://spectacu.la/downloads/gpl/searchreplacedb.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spectacu.la/search-and-replace-for-wordpress-databases/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Spectacu.la Page Widget Plugin</title>
		<link>http://spectacu.la/spectacula-page-widget-plugin/</link>
		<comments>http://spectacu.la/spectacula-page-widget-plugin/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:59:15 +0000</pubDate>
		<dc:creator>Dave Coveney</dc:creator>
		
		<category><![CDATA[Plugins]]></category>

		<category><![CDATA[widgets]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://spectacu.la/?p=123</guid>
		<description><![CDATA[Sometimes the text widget just isn't enough in WordPress.  You want visual control.  And, for that matter, you'd like to use some shortcodes.  In fact, what you need is the ability to place a real page's content in the sidebar, and to remove that page from the site's navigation.  Well, that's pretty easy with our Page Widget Plugin!]]></description>
			<content:encoded><![CDATA[<p class="taxonomy">To download the Plugin, please read the instructions then go to the bottom of this post and click the download button.</p>
<p>It&#8217;s often nice to be able to create a profile page or similar, and to display it in a sidebar.  You get to use the visual editor, and you don&#8217;t necessarily need admin access.  Similarly, you avoid the issue of having to work with the much more difficult text widget.</p>
<p><span id="more-123"></span></p>
<div class="LessonContent">
<div class="LessonSummary">
<p>Downsides include that the theme may not have CSS styles properly set, so for example a captioned image may not display correctly.  You should test this widget with your theme, across several browsers, before using it on a critical live site.</p>
</p></div>
<div class="LessonStep top">
<h3 class="StepTitle">Installing the Plugin</h3>
<div class="StepInstructions">
<p>You should use either use the WordPress built-in plugin installation process, or download the zip file of the plugin, unzip it, and copy it into your wp-content/plugins folder.</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">Activating the Plugin</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-12598392603481.png" width="177" height="176" alt="media-12598392603481.png" />
</div>
<div class="StepInstructions">
<p>Sign in to the back-end of your WordPress administration (usually your site&#8217;s main address plus /wp-admin ) and navigate to Appearance | Plugins | Installed.</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">Activating the Plugin, 2</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-12598393664551.png" width="540" height="264" alt="media-12598393664551.png" />
</div>
<div class="StepInstructions">
<p>In the main part of the Manage Plugins page, you should now see the Spectacu.la Page Widget in grey.  Click on the activate text to activate the widget.  Once activated the line for the plugin will change to white.</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">Using the Widget</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-12598397635461.png" width="540" height="389" alt="media-12598397635461.png" />
</div>
<div class="StepInstructions">
<p>We&#8217;re going to add a box to the top right of our WordPress site, showing the About page with an image.</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">Setting up Widgets</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-12598401090961.png" width="540" height="257" alt="media-12598401090961.png" />
</div>
<div class="StepInstructions">
<p>Navigate to Appearance | Widgets.  In this panel you can control the widgets displayed on your site.  You may need to add the Search, Pages, Archives and Categories widgets if you&#8217;re on a new install of WordPress.  In this example they are already set up.</p>
<p>Drag the Spectacu.la Page Widget across as shown above.  Be aware that it may be in a different position to that shown above.</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">Configuring the Widget</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-1259840666337.png" width="492" height="349" alt="media-1259840666337.png" />
</div>
<div class="StepInstructions">
<p>This is a powerful widget with a lot of options:</p>
<p>1. The page to show in the widget<br />
2. Whether or not to show the title of the page<br />
3. You can link to the source page - especially useful if you&#8217;re using the excerpt functionality<br />
4. You can override the title and set something of your own<br />
5. You can use an excerpt instead of the full content.  The excerpt will be auto-generated unless you use Westi&#8217;s PJW Page Excerpt plugin which will allow you to create your own excerpt should you wish.<br />
6. You may wish to hide this page from your site&#8217;s normal navigation.  This may not work with some themes and plugins which don&#8217;t use conventional approaches to listing pages.</p>
<p>Set the options as in the image above, then click save.</p>
<p>Now let&#8217;s take a look at what&#8217;s happened.</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">The Result</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-1259840854649.png" width="360" height="342" alt="media-1259840854649.png" />
</div>
<div class="StepInstructions">
<p>As you can see, the sidebar now contains the entire content of the page, and the page has been removed from the navigation.  Edit the post, and add a thumbnail aligned to the right&#8230;</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">With an Image</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-1259840994032.png" width="361" height="326" alt="media-1259840994032.png" />
</div>
<div class="StepInstructions">
<p>As you can see, there isn&#8217;t much space for even a thumbnail in this theme&#8217;s sidebar, but don&#8217;t let that put you off, you can change the size easily in WordPress, although that&#8217;s a different lesson.  Have you seen our <a href="http://spectacu.la/category/resources/">WordPress User Guides</a>?</p>
</div></div>
<div class="LessonStep top">
<h3 class="StepTitle">With a Smaller Image</h3>
<div class="StepImage">
	<img src="http://spectacu.la/wp-content/uploads/media-1259841150210.png" width="287" height="312" alt="media-1259841150210.png" />
</div>
<div class="StepInstructions">
<p>And there he is - all right-sized and everything.  Advanced WordPress users and designers will be able to make considerable use of this plugin, and basic users should be able to easily create well formatted and attractive sidebar content.  If you have feedback on this plugin, feel free to comment here.  If you need support, or simply wish to encourage us to release more plugins then you&#8217;ll need to join the (very reasonably priced) club.</p>
</div></div>
</div>
<p><a class="theme_download" href="http://spectacu.la/downloads/gpl/spec-page-widget.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://spectacu.la/spectacula-page-widget-plugin/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
