Tag: upgrade

French Version of Contact Coldform Released

Posted on January 11, 2009 in WordPress by Jeff Starr

Several months after the release of the Arabic and Spanish versions of Contact Coldform, I am pleased to announce the release of a French translation of the plugin. The new French translation is graciously provided by Tony Tohme, who is also helping with the upcoming Russian translation of the Coldform. Thank you, Tony! :)

To download the French version of Contact Coldform, check out the plugin’s home page, where you will find additional information, future updates, and much more.

Continue Reading

Spanish Version of Contact Coldform Released

Posted on June 22, 2008 in WordPress by Jeff Starr

Great news! Contact Coldform is now available in Spanish (Spain). Special thanks to Fernando Tellado of Ayuda Wordpress for his superb Spanish translation of the Coldform. Fernando has articulately translated both the administration panel and all of the (X)HTML/text output as well. Contact Coldform is now the perfect solution for Spanish users of WordPress who desire a super-clean, standards-based contact form. Thanks Fernando! :)

For more information, check out Fernando’s post, Plugin Contact Coldform en Español. There you may obtain more information and also download the Spanish (Spain) version of Contact Coldform. You may also download the Spanish version via the Coldform home page. Also, check out Ayuda Wordpress’ post comparing Contact Coldform to Cforms II.

Arabic Version of Contact Coldform Released

Posted on March 3, 2008 in WordPress by Jeff Starr

Announcing an improved, Arabic version of my latest WordPress plugin, Contact Coldform. The new version features complete UTF-8 compatibility and has been completely translated to the Arabic language. Here is a detailed breakdown of changes made for the Arabic version:

  • Completely translated to Arabic
  • Encoded in UTF-8 without BOM
  • Emails now sent in HTML format
  • Added line breaks in HTML format
  • Right-to-left text presentation
  • Customized layout for Arabic
  • Full UTF-8 support

Of course, none of this would have been possible without the generous help of:

For more information, check out the original thread at ar-wp.com. There you may obtain more information and also download the Arabic version of Contact Coldform. You may also download the Arabic version via the Coldform home page.

Perishable Press Upgraded to WordPress 2.3.3

Posted on February 11, 2008 in Perishable by m0n

Just a note to announce a site upgrade to WordPress 2.3.3. The upgrade went well, but overall server performance continues to suffer. I am aware that some people are experiencing difficulties leaving comments and even accessing the site in general. Rest assured, I am working with my hosting company, A Small Orange, to get everything back on track and running smooth. In the meantime, I appreciate your patience as we work to resolve the issues, restore full functionality, and return to reliable performance.

Please share any helpful observations regarding the site here. — Thanks!

WordPress Core Hacks Used at Perishable Press

Posted on December 3, 2007 in Perishable, WordPress by Jeff Starr

One of the necessary evils associated with creating a highly customized WordPress-powered site involves the inevitable necessity to hack the WordPress core. WordPress is built for mass-consumption and tends to cater to the largest audience possible, making it necessary to bend and poke around the corners to get WordPress to function in a more specific or specialized capacity.

Of course, there is a major downside to tweaking core WordPress files: upgrading. The overambitious WordPress peeps are constantly rolling out upgrade after upgrade, many of which are required security fixes, patches, or whatever. The point is that editing the WordPress core on your current version of WordPress requires that you edit each and every subsequent upgrade, for each and every one of your sites.

Over time, I have realized the importance of documenting core changes for any sites that require them. Having a concise record of the files and code involved with each hack greatly facilitates the entire upgrade process. Without such a reference, subtle changes may be forgotten and key hacks may be overlooked. Here at Perishable Press, my former Core Hacks Log served me well from WordPress 1.5 to 2.0, however, much of it no longer applies to the new WordPress 2.3 configuration. Since the latest site overhaul, I have dramatically reduced the overall number of required core edits.

Continue Reading

Rethinking Site Functionality, Presentation, and Structure

Posted on November 7, 2007 in Perishable by Jeff Starr

Two weeks ago, I decided to completely overhaul Perishable Press. The decision came after several months of smooth sailing with excellent site performance, an optimized theme, plenty of visitors, and even a comfortable posting schedule. All things considered, everything was peachy keen — until I began reflecting on the “big picture,” meditating upon certain aspects that are frequently taken for granted or simply overlooked during periods of hectic operation and maintenance. For example, while troubleshooting htaccess and PHP errors, webmasters generally don’t take the time to meditate on the structural and functional integrity of their overall site configuration.

Fortunately, I recently found the time to contemplate Perishable Press from a broader perspective, rethinking everything from themes and plugins to organizational architecture and permalinks. As I approach the completion of the most comprehensive site renovation ever, many significant improvements are currently underway. Here is a summary of the primary changes involving site structure, presentation, functionality and performance:

Continue Reading

Plenty of Errors to Chew On..

Posted on November 6, 2007 in Perishable by Jeff Starr

Alrighty then! Looks like recent changes to site structure have really dropped a bomb on quite a few regular visitors out there. After switching over to the new default theme last night, I had setup an email notification system to alert me of all errors encountered at this domain (i.e., the main site and all test sites). Of course, I knew that at least a few errors would be inevitable, but I had no idea that I would receive nearly 300 of them!

After examining the nature of these errors, it appears that the bulk of them are the result of either Google showing confusion over the new image directory structure, or people visiting the site with a browser cache full of old theme files. Apparently, a few visitors were actually using some of the alternate themes that I had provided via the previous default theme. So, now that the alternate themes have been removed (temporarily, for a few months), visitors are experiencing errors when they visit the site. Uhh, not so good, especially for them.

Continue Reading

New Widgetized Version of AddMySite Released!

Posted on October 29, 2007 in WordPress by Jeff Starr

It must be national “update-your-WordPress-plugins” month around here or something. First a completely renovated version of Category LiveBookmarks Plus, then a WP-2.3-compatible facelift for BlogStats PCC, and now a completely widgetized & automated version of the popular AddMySite plugin. Coincidence? — I think not..

Due to popular demand, I am proud to announce the release of a new widgetized version of the free AddMySite (AMS) plugin for WordPress. The new version (0.88) is compatible with all versions of WordPress (including all WP 2.3+), and is easily integrated into any widget-capable area (e.g., sidebars, footers, etc.) of any widget-friendly WordPress theme. Simply activate, drag & drop into place, and enjoy! Once the widget has been activated, AMS enables site visitors to easily and quickly add your site or feed to as many as 40 social-bookmarking and/or feed aggregation services.

By default, version 0.88 of AMS automatically uses the information specified in your WP Admin for your blog name, blog address, and feed URL. Thus, manual code editing is no longer required for the plugin to work as intended. However, if you would like to customize any of the predefined variables, simply use the nifty popup menu provided on the AMS widget icon. Everything is completely widgetized, automated, and customizable! For more information about AddMySite, or to download yourself a fresh copy, visit the official AMS information page »

New Version of BlogStats PCC for WordPress 2.3

Posted on October 28, 2007 in WordPress by Jeff Starr

Just a note to announce the release of a new version of BlogStats PCC. BlogStats PCC is a free WordPress plugin that provides an easy way to share your blog’s core statistics with your visitors. You can show off any or all of the following statistics:

  • total number of posts
  • total number of comments
  • total number of categories
  • total number of registered users
  • total number of unregistered users
  • total number of individual, static pages
  • the date of the most recent post modification
  • a link to the most recently published blog post
  • a link to the name of the most recent commentator
  • date/time of the most recent blog update, displayed in your default date format

BlogStats PCC enables you to display any or all of these statistics in any location (inside the loop or elsewhere). The plugin is completely free, totally customizable, and extremely easy to use. The new version (2.3.0a) works with all versions of WordPress (1.5 - 2.3), and is available for immediate download via the official BlogStats PCC information/download page.

Rocking the Boat

Posted on October 21, 2007 in Perishable by Jeff Starr

Ladies and gentlemen, things have become a little too comfortable around here. Themes are displaying with nary a hitch, files are being downloaded as expected, URLs are served like butter, and the site is experiencing fewer errors (PHP, 404, etc.) than ever before. After two years of perpetual updating, posting, fixing, and tweaking, Perishable Press is finally performing exactly as desired (all things considered, of course). Yes sir, things are running quite smooth indeed..

A little too smooth. Sure, given the comfortable equilibrium that I am currently enjoying, it would be very easy to kick back, get lazy, and just coast on autopilot for the next two or three years. Maybe drop a new theme every six or seven months and call it good. After all, I have finally developed a comfortable writing and posting schedule as well. So what’s the problem, then? Why change things now? Why deliberately create more work, hassle, and stress for myself? Surely, there is a good reason.

Continue Reading

New Version of Category LiveBookmarks Plus for WordPress 2.3

Posted on October 16, 2007 in WordPress by Jeff Starr

Category LiveBookmarks Icon
CLB+
As many WordPress users now realize, there have been many fundamental changes in the new version of WordPress. The latest version of WordPress — 2.3 — features a considerably revamped database structure, including a complete reorganization and redistribution of the wp_categories table. Unfortunately, such database alterations have rendered inoperable many popular plugins, proving quite unfortunate not only for millions of WordPress users, but also for those of us who donate time, effort, and resources toward the development of freely available WordPress plugins. Thus, with the advent of WordPress 2.3, developers whose plugins have ceased to function must now decide whether or not to continue their support. In my humble opinion, philanthropic plugin developers have several choices:

Continue Reading

Much ado about Taglines

Posted on September 18, 2007 in Perishable by Jeff Starr

When I first began Perishable Press, I intended the site to focus primarily on the creative side of web and graphic design. However, I also wanted to share equally my ideas and experiences involving music, video, and other multimedia avenues of creative expression. Further, because I enjoy writing, and find myself frequently focusing on art, inspiration, and artistic expression, the initial plan encompassed a perpetual exploration and presentation of these topics here at Perishable Press.

Two years later, the original vision continues to change. Perishable Press has evolved into a site that focuses almost exclusively on technical aspects of web design. Although readers may occasionally experience a few digressions into graphic design, photography, and creative expression, these topics no longer represent the primary purpose of the site. Currently, visitors to the site will notice a plethora of content aimed at helping designers, developers, and bloggers excel on the Internet. Over the course of fifteen redesigns, the look and feel of Perishable Press has managed almost completely to evolve synchronously with the content. Almost..

Continue Reading

WordPress 2.1 Blogroll Nightmare and Lessons Learned

Posted on June 23, 2007 in Blogging, WordPress by Jeff Starr

[ Image: Nightmarish Rotting Corpse Head ] Here at Perishable Press, we like to stay current by running the latest version of WordPress. The site launched in 2005 with WordPress 1.5 (Strayhorn), eventually made the jump to version 2.0 (Duke), recently stepped up to 2.0.1 (Still Duke), and currently enjoys 2.0.5 (Ronan). Although each of these upgrades have required various file edits, plugin tweaks, and theme modifications, the process is always educational and remains an important aspect of this site. Much of our content revolves around using and customizing WordPress, and so staying current with new versions is critical if we are to continue operating as a relevant, contemporary resource.

Needless to say, with the release of WordPress 2.1 (Ella) in January of 2007, we were excited about upgrading. In fact, we were so enthusiastic about diving into ‘Ella’ that we went ahead and upgraded only hours after its release (mistake #1). I recall thinking something to the effect of “..every other WordPress upgrade has gone so well..” and, after skimming over the list of changes, “Wow, look at all that WordPress goodness — surely this will be a fantastic upgrade!” (mistake #2). As if that weren’t enough, by not waiting a few days before jumping aboard, it was impossible to follow the sage advice of “Google first, upgrade second” (mistake #3).

Continue Reading

New Version of AddMySite Released!

Posted on February 13, 2007 in WordPress by Jeff Starr

We are happy to announce the release of AddMySite (AMS) version 0.77. The new version features support for syndicated content feeds, and enables users to add their site’s feed to fifteen different feed-syndication and social-aggregator sites. Plus, the new version of AMS includes twenty-five social-bookmarking services to which users may easily add your site. The entire list of 40 sites is concisely presented via drop-down menu or as a customizable list. One file. Simple installation. Easy to use. Clean output and XHTML strict. Plus, the new version of AddMySite is fully compatible with WordPress 2.1 (Ella).

Click on over to the AMS download page to check it out »

WordPress 2.1 Released

Posted on January 22, 2007 in WordPress by Jeff Starr

As promised, the fine folks at WordPress have released WordPress 2.1, which has been named "Ella" after jazz legend Ella Fitzgerald. The new version features several key improvements, including lossless XML import/export, spell checking, post Autosave, and even a new search-engine privacy option. All that, and much more. Reading through the vast list of changes and developer features, we are quite excited to dive in and explore the new and improved, "state-of-the-art semantic personal publishing platform."

Download WordPress 2.1 (direct download)

Feed Tester

Posted on December 4, 2006 in Perishable, WordPress by Jeff Starr

Ignore this post..

[Edit] Note to WP 2.0.5 users: Everything was working fine on this site before upgrading to WP 2.0.5. After upgrading, apparently, our feeds stopped validating* and the BDP RSS Aggregator plugin refused to update our own feeds. After several hours investigating the situation, we determined that the Live Comment Preview plugin was interfering with our feeds validating, while the upgraded WordPress (2.0.5) was responsible for problems with the BDP plugin.

Here is a copy of our recent comment posted at the BDP plugin website:

Comment by m0n on Wednesday 6 December 2006 at 4:28 am

I was running BDPRSS v.0.2.2 just fine before upgrading to WP 2.0.5. After the upgrade, I noticed that feeds from my own site are no longer updated. They are apparently polled, but reflect a ‘last updated’ value of the day I upgraded WP. I have, since the WP upgrade, posted several new articles that appear fine directly, through feedburner, etc.

I have tried just about everything (restoring old BDP databases, deleting and adding new feed entries in the admin panel, deleting cache, you name it, etc.). I have also tried upgrading to BDP 0.4.10, but to no avail. My own feeds will not update either in the BDP admin panel or on the web page itself. Adding different feed formats does not work either.

So, just a note to hopefully garner some more clues concerning this. I realize it may not be an emergency, because who reads their own feeds for crying out loud. Perhaps there are others out there with the same problem. If possible, try adding any of your own feeds (on WP 2.0.5) and see if they work. Well, thanks for listening!

The whole event pretty much zapped the weekend of any free-time, but the good news is that we managed to get everything working properly (according to our needs) once again — feeds all validate and we have previews of our own feeds via the BDP plugin — and we are still running WP 2.0.5! We’ll just bill the incident as another 8-hour "learning experience"..

If anyone is experiencing anything similar to the issues mentioned in this post, we would love to hear about it — drop us a line!

Update: [ May 28th, 2007 ] - Issue resolved! After moving the Perishable Press website to a new server, our WordPress feeds once again began updating directly through our own site (via BDP plugin, et al). Apparently, as our previous host continued to disable important PHP functions (as a solution to potential security vulnerabilities), the various plugins and scripts employing the disabled functions inevitably became useless. Thus, we attribute the source our non-updating feed issue directly to server limitations (and lazy technicians). While we cannot at this point discern exactly the cause of the problem, suffice it to say that our new host provides all the functionality needed for everything to run properly (and smoothly, we might add). So cheers to everyone who helped us with suggestions and ideas for this bizarre dilemma. We now enjoy fully functional and validating WordPress feeds. Case closed.

Footnotes

AddMySite Plugin for WordPress

Posted on November 1, 2006 in WordPress by Jeff Starr

The AddMySite (AMS) plugin for WordPress makes it easy for your visitors to add your site to all of their favorite social-bookmarking services. With a few clicks, users may easily bookmark or add your site to any number of popular social bookmarking services, which are concisely presented via drop-down menu or as a customizable list. One file. Simple installation. Easy to use. Clean output and XHTML strict.

New! — Widgetized AMS version 0.88 now available! The new widgetized version of AddMySite makes it easier than ever to add your site and feed to 40 sites! AMS version 0.88 features 25 social-bookmarking sites to which visitors may add your site. Even better, the new version of AMS also enables visitors to add your site’s syndicated feed to 15 feed-related/aggregator sites. That’s 40 ways to expand your online empire!

Super-easy installation instructions

  1. Upload plugin to plugins directory and activate.
  2. Drag and drop the AMS widget into your sidebar.
  3. Enjoy! ;)

Demonstration

To see AddMySite (AMS) in action, look here (located near the middle of the page).

Download AddMySite (AMS)

[ version 0.88 (widgetized) | ~5KB | .zip | 2012 downloads ]

Previous versions of AMS

New Version of Category LiveBookmarks Available

Posted on August 20, 2006 in WordPress by Jeff Starr

Thanks to some valuable feedback, several inconsistencies were discovered in our Category LiveBookmarks plugin for WordPress. If you are using CLB+ version 1.1.1, check carefully your feed links — you may discover that your feed links are being written twice in both the document head and (if applicable) the document body. Further, it was requested that the plugin produce a complete set of links for various WP page views, such as category views and archive views, rather than creating links merely for the categories of whichever post appears first in the sequence..

In addition fixing the “double-link” bug, we decided to rewrite completely the CLB+ plugin. Several functions have been consolidated and streamlined. New features providing greater flexibility and control have been added, thereby enabling users to specify where, when, and how their feed links are generated. We even posted a nice collection of RSS feed icons for users to enjoy, use, and share. Overall, the CLB+ plugin is better than ever. If you haven’t yet upgraded to 1.3.3, now is definitely the time!

Check out Category LiveBookmarks Plus version 1.3.3 »

WordPress Core File Edits at Perishable Press

Posted on August 15, 2006 in Perishable, WordPress by Jeff Starr

Update: After upgrading Perishable Press in 2007, many of the hacks listed on this page are no longer applicable. Please refer to our new WordPress Core Edits for current information. Otherwise, this article remains online for reference purposes only.

The folks developing WordPress are continually rolling out “upgrades”. While it is generally a good idea to stay current, it can also be a bit of a pain if you have made any changes to the WordPress core files. Our recommendation? Keep a log such as this one that either includes all edits or links to posts describing them. That way, when it is time to upgrade to WP 3.0.1, WP 3.0.2, … WP 9.0.1, WP 9.0.2 … (you get the idea), it will simply be a matter of referring to your handy WP core file change log and then going thru the list, copying & pasting your way back to complete functionality. Just remember to add any subsequent changes to the list, though, or you may find yourself scratching your head after the next upgrade. Another good idea involves carefully comparing any code you are replacing, checking to make sure the wizards at WordPress haven’t changed any aspects of the original code (of which you are replacing).

So, without further ado, here are the WordPress core file edits currently operating here at Perishable Press:

Customize the_excerpt function

File: wp-includes/functions-formatting.php (~ lines #763 & 767): set to desired values:

$excerpt_length = 50;
...
array_pop($words);
array_push($words, '[...] ( click post title to read more )');
$text = implode(' ', $words);

Customize the wpautop function

File: wp-includes/functions-formatting.php (~ line #72, #83):

$pee = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "<p>$1</p>\n\t\t\t\t\t\t", $pee); // make paragraphs, including one at the end
$pee = str_replace("<p><!--", "<!--", $pee);
$pee = str_replace("--></p>", "-->", $pee);
return $pee;

Customize the more quicktag

File: wp-includes/template-functions-post.php (~ lines #54, 62, 92):

function the_content($more_link_text = 'Continued >>', $stripteaser = 0, $more_file = '') {
   $content = get_the_content($more_link_text, $stripteaser, $more_file);
   $content = apply_filters('the_content', $content);
   $content = str_replace(']]>', ']]&gt;', $content);
   echo $content;
}
...
function get_the_content($more_link_text = 'Continued >>', $stripteaser = 0, $more_file = '') {
   global $id, $post, $more, $single, $withcomments, $page, $pages, $multipage, $numpages;
   global $preview;
   global $pagenow;
   $output = '';
...
...
else
   //$output .= ' <a href="'. get_permalink() . "#more-$id\">$more_link_text</a>";
   $output .= ' <a href="'. get_permalink() . "\">$more_link_text</a>";
}

Customize Default Password Text

File: wp-includes/comment-functions.php (~ line #296):

Password Required

WordPress RDF Source Makeover

File: wp-includes/comment-functions.php (~ line #513):

function trackback_rdf($timezone = 0) {
	global $id;
	if (!stristr($_SERVER['HTTP_USER_AGENT'], 'W3C_Validator')) {
	echo '<rdf:RDF ';
	echo "\n";
	echo '   xmlns:dc="http://purl.org/dc/elements/1.1/" ';
	echo "\n";
	echo '   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ';
	echo "\n";
	echo '   xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">';
	echo "\n";
	echo '<rdf:Description ';
	echo "\n";
	echo '   dc:creator="';
	the_author();
	echo '" '."\n";
	echo '   dc:date="';
	the_date_xml();
	echo ' @ ';
	the_time('g:i a');
	echo '" '."\n";
	echo '   dc:title="'.str_replace('--', '&#x2d;&#x2d;', wptexturize(strip_tags(get_the_title()))).'" '."\n";
	echo '   rdf:about="';
	the_permalink();
	echo '" '."\n";
	echo '   dc:identifier="';
	the_permalink();
	echo '" '."\n";
	echo '   trackback:ping="'.trackback_url(0);
	echo '" '."\n";
	echo '   dc:description="';
	the_excerpt_rss();
	echo '" />'."\n";
	echo '</rdf:RDF>';
	}
}

And then replace the_excerpt_rss(); with:

the_content_rss('', TRUE, '', 7, 2);

Title Attributes for WordPress Post Navigation

File: wp-includes/template-functions-links.php (~ lines #348, 369, 459, 494, 503):

$string = '<a href="'.get_permalink($post->ID).'" title="Go to previous post">'.$previous;
...
$string = '<a href="'.get_permalink($post->ID).'" title="Go to next post">'.$next;
...
...
function next_posts_link($label='Next Page &raquo;', $max_page=0) {
...
echo '" title="Go backward in time">'. preg_replace('/&([^#])(?![a-z]{1,8};)/', '&#038;$1', $label) .'</a>';
...
function previous_posts_link($label='&laquo; Previous Page') {
...
echo '" title="Go forward in time">'. preg_replace('/&([^#])(?![a-z]{1,8};)/', '&#038;$1', $label) .'</a>';
...
function posts_nav_link($sep=' &#8212; ', $prelabel='&laquo; Previous Page', $nxtlabel='Next Page &raquo;') {

Vars Tweak for htaccess Edits

File: wp-includes/vars.php (~ #35):

// Server detection
//the next line is used to allow WP to write htaccess rules during permalink creation (comment out the $is_apache line first)
//$is_apache = 1;
$is_apache = ( strstr($_SERVER['SERVER_SOFTWARE'], 'Apache') || strstr($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') ) ? 1 : 0;

Customize Password-Protected Posts

File: template-functions-post.php (~ line #3):

function get_the_password_form() {
	$output = '<form action="' . get_settings('siteurl') . '/wp-pass.php" method="post">
	<p>' . __("This post is password protected. To view it please enter your password below:") . '</p>
	<p><small><label class="h">' . __("Password: ") . ' </label><input class="postpassword" name="post_password" type="password" size="11" /> <input class="passwordsubmit" type="submit" name="Submit" value="' . __("Submit &raquo;") . '" /></small></p>
	</form>
	<div class="clear vspace">&nbsp;</div>
	';
	return $output;
}

Reversing WordPress Post Navigation Order

File: template-functions-links.php (~ lines #503, 518):

Note: It looks like this change has been implemented (as of WP 2.0.5)..

function posts_nav_link($sep=' &#8212; ', $prelabel='&laquo; Previous Page', $nxtlabel='Next Page &raquo;') {
...
if ( $max_num_pages > 1 ) {
	previous_posts_link($prelabel);
	echo preg_replace('/&([^#])(?![a-z]{1,8};)/', '&#038;$1', $sep);
	next_posts_link($nxtlabel, $max_page);
}

Customize Quicktag Buttons

File: wp-includes/js/quicktags.js (~ line #37):

Required edit: delete the empty spaces out of the "pre code" button.

// CUSTOM QUICKTAGS BEGIN HERE

edButtons[edButtons.length] = new edButton('ed_authent'
,'authenticate'
,'<!--authenticate-->'
,''
,''
);

edButtons[edButtons.length] = new edButton('ed_quotes'
,'quotes'
,'&ldquo;'
,'&rdquo;'
,''
);

edButtons[edButtons.length] = new edButton('ed_dash'
,'dash'
,'&#8212;'
,''
,''
);

edButtons[edButtons.length] = new edButton('ed_rsquo'
,'rsquo'
,'&rsquo;'
,''
,''
);
edButtons[edButtons.length] = new edButton('ed_lsquo'
,'lsquo'
,'&lsquo;'
,''
,''
);

edButtons[edButtons.length] = new edButton('ed_acronym'
,'acronym'
,'<acronym title="">'
,'</acronym>'
,''
);

edButtons[edButtons.length] = new edButton('ed_clearspace'
,'clearspace'
,'<div class="clear vspace">&nbsp;</div>'
,''
,''
);
edButtons[edButtons.length] = new edButton('ed_follow'
,'follow link'
,'<a href="" title="">'
,'</a>'
,''
);
edButtons[edButtons.length] = new edButton('ed_nofollow'
,'nofollow link'
,'<a href="http://" title="" rel="nofollow">'
,'</a>'
,''
);
edButtons[edButtons.length] = new edButton('ed_press-link'
,'press link'
,'<a href="http://perishablepress.com/" title="Perishable Press">'
,'</a>'
,''
);
edButtons[edButtons.length] = new edButton('ed_reflist'
,'ref list'
,'<h3 class="references"></h3>\n\t<ul class="refs">\n\t<li><sup>1</sup> <a href="http://" title=""></a></li>\n\t<li><sup>2</sup> <a href="http://" title=""></a></li>\n'
,'</ul>'
,''
);
edButtons[edButtons.length] = new edButton('ed_content-link'
,'content-link'
,'<a href="http://perishablepress.com/press/wp-content/online/" title="Perishable Press">'
,'</a>'
,''
);
edButtons[edButtons.length] = new edButton('ed_press-image'
,'press image'
,'<img src="http://perishablepress.com/press/wp-content/images/" title="" alt="" />'
,''
,''
);
edButtons[edButtons.length] = new edButton('ed_pre-code'
,'pre code'
,'< pre>< code>'
,'< /code>< /pre>'
,''
);
edButtons[edButtons.length] = new edButton('ed_sup'
,'sup'
,'<sup>'
,'</sup>'
,''
);
edButtons[edButtons.length] = new edButton('ed_quot'
,'quot'
,'&quot;'
,''
,''
);
edButtons[edButtons.length] = new edButton('ed_<'
,'<'
,'&lt;'
,''
,''
);
edButtons[edButtons.length] = new edButton('ed_>'
,'>'
,'&gt;'
,''
,''
);

// CUSTOM QUICKTAGS END HERE

Remove the Admin Post-Preview Panel

File: wp-admin/post.php (line #83) & wp-admin/edit-form-advanced.php (line 17):

First, open wp-admin/post.php and delete these lines:

<div id='preview' class='wrap'>
<h2 id="preview-post"><?php _e('Post Preview (updated when post is saved)'); ?> <small class="quickjump"><a href="#write-post"><?php _e('edit &uarr;'); ?></a></small></h2>
<iframe src="<?php echo wp_specialchars(apply_filters('preview_post_link', add_query_arg('preview', 'true', get_permalink($post->ID)))); ?>" width="100%" height="600" ></iframe>
</div>

Then, open wp-admin/edit-form-advanced.php and delete these lines:

<?php if ( 0 != $post_ID ) : ?>
 <small class="quickjump"><a href="#preview-post"><?php _e('preview &darr;'); ?></a></small>
<?php endif; ?>

Enhance parse_url Functionality

File: wp-includes/functions.php (~ lines #1067): insert "@" before parse_url and praise the Lord!

Remove CSS Link to Print Stylesheet

File: press/wp-subscription-manager.php (~ line #100): delete the following line to eliminate unnecessary 404 errors when users subscribe/unsubscribe to comments (or when managing subscriptions):

<link rel="stylesheet" type="text/css" media="print" href="<?php echo get_settings('siteurl'); ?>/print.css" />

Customize Comment Feed Link

File: wp-includes/feed-functions.php (line #84): edit according to current default theme requirements:

echo "<a href='$url'>$link_text</a>";

--- changed to --->

echo "<a class=\"feed-icon\" href='$url' title=\"Subscribe to comments for this article\" rel=\"nofollow\">$link_text</a>";

Customize Commentator Links

File: wp-includes/comment-functions.php (~lines #358-368): swap the following:

/* original */
function get_comment_author_link() {
	global $comment;
	$url    = get_comment_author_url();
	$author = get_comment_author();

	if ( empty( $url ) || 'http://' == $url )
		$return = $author;
	else
		$return = "<a href='$url' rel='external nofollow'>$author</a>";
	return apply_filters('get_comment_author_link', $return);
}
// core file edit listed at perishablepress.com
// http://perishablepress.com/press/2006/08/15/wordpress-core-file-edits/
function get_comment_author_link() {
	global $comment;
	$url    = get_comment_author_url();
	$author = get_comment_author();

	if($comment->comment_type == 'pingback' || $comment->comment_type == 'trackback' ) { 
				if ( empty( $url ) || 'http://' == $url ) {
					$return = $author;
				} else {
					$return = '<a href="'.$url.'" rel="external">'.$author.'</a>';
				}
	} else {
				if ( empty( $url ) || 'http://' == $url ) {
					$return = $author;
				} elseif ( $author == 'blacklist' ) {
					$return = '<a href="'.$url.'" rel="external nofollow">'.$author.'</a>';
				} else {
					$return = '<a href="'.$url.'" rel="external">'.$author.'</a>';
				}
	}
	return apply_filters('get_comment_author_link', $return);
}

References

Perishable Press Redesign

Posted on August 7, 2006 in Perishable, Websites by Jeff Starr

For many months, visitors to Perishable Press encountered the highly customized Jupiter! theme. Utilizing sIFR, Prototype, Lightbox, and several other bandwidth-heavy scripts, the Jupiter! theme weighs in at well over 400KB/page when saved as an offline copy. The Jupiter! theme also employs every plugin used here at Perishable Press, resulting in even slower performance for broadband users, and utterly painful experiences for those on modem/dial-up.

Recently, we decided to give Jupiter! a facelift and dump the heavy baggage. The idea was to create a theme aesthetically similar to Jupiter!, focusing on speed and usability without sacrificing essential functionality. The result is Lithium, the eleventh WordPress theme from Perishable Press & Monzilla Media. Lithium is lightweight, accessible, user-friendly, XHTML-strict, and provides helpful features such as tags, keywords, gravatars, as well as comment enhancements and autodiscovery feeds. Best of all, Lithium provides the same overall "look and feel" as Jupiter!, but with better, brighter colors and sharper, sexier details.

Nonetheless, there are yet simpler, more refined themes in the works for Perishable Press. By the time you read this, in fact, the Lithium theme may no longer appear as the site's "default" theme. So, for the record, here are links to Jupiter!, Lithium, and a selection of all Press themes.

Category LiveBookmarks Plus

Posted on August 7, 2006 in WordPress by Jeff Starr

Category LiveBookmarks Icon
CLB+
New version of Category LiveBookmarks Plus now available! CLB+ 2.3.0b enables WordPress 2.3+ users to configure and customize the ultimate set of autodetection feeds, category feeds, category links, and feed links. Features include completely rewritten, optimized code, optional category post counts, and custom RSS-icon links for all category and/or feed links. Overall, the new version is faster and more flexible than ever!

Category LiveBookmarks Plus is the easy way to provide complete “Live Bookmark” functionality and "Post Smart" feed links to your WordPress-powered website. Simply install the plugin, and users with Firefox, Opera, Navigator, or any other modern browser, will enjoy a selection of your RSS feed links at their fingertips. CLB Plus seamlessly integrates the code necessary for modern browsers to automatically detect and update any RSS feed available from the current page, enabling readers to stay current with important news and updates.

Category LiveBookmarks Plus also makes it easy to add category feed links to posts, comments, pages, or anywhere else within your site. Simply add the <? clb_plus(); ?> function to the desired location within your blog, and there enjoy a contextually relevant selection of completely customizable RSS feed links. There are also options to include RSS feed links for “all posts” and “all comments”, as well as settings to customize markup, icons, and feed links. Plus, as of version 1.7.7, there are options to configure a custom set of category links next to corresponding feed links, which may include comment counts and RSS-icon links.

With CLB+, you may customize category feeds for the various WordPress view types (e.g., category views, page views). CLB automatically omits feeds with zero posts, and also excludes subcategory feeds. Further, this plugin produces strictly valid XHTML markup.

Installation and Usage:

  1. Unzip php file and add to wp-content/plugins directory.
  2. Open php file and adjust any of the "CLB OPTIONS", if desired.
  3. Add the following function call to your sidebar or any other location:
    <?php if (function_exists('clb_plus')) { clb_plus(); } ?>
  4. Feed links will be added to the <head> automatically. No further action required.
  5. Feed links will be added to the <body> wherever the function call (from step 3) is located.

Download Category LiveBookmarks [ version 2.3.0b | ~7.3KB | .zip | 3013 downloads ]

Related Information & Previous Versions

Passing Quotation Marks via wp_link_pages

Posted on June 12, 2006 in Function, WordPress by Jeff Starr

According to the WordPress Codex 1, it is possible to pass quotation marks via the parameters of the function, wp_link_pages(). This would enable users to assign a particular css class or id to the function output, thereby providing greater design and behavioral control over that particular object.

But alas, as reported several times in the WordPress Codex 2, wp_link_pages() is unable to pass quotes without causing errors.

To fix this, we open template-functions-post.php and find wp_link_pages(), which is located around line #121 (for WP 2.0.2).

The fix is easy, simply edit the <p> in the following lines:

$r['before'] = '<p>' . __('Pages:');
$r['after'] = '</p>';

For example, if you wanted to wrap the function output with a <div class="foo"> and subsequent </div>:

$r['before'] = '<div class="foo">' . __('Pages:');
$r['after'] = '</div>';

Upload and done. Do not forget to eliminate the before= and after= parameters when calling the function from the loop 3.

References

Reversing WordPress Page Navigation Order

Posted on June 7, 2006 in Function, WordPress by Jeff Starr

This article explains how to reverse the order of WordPress page navigation links.

To reverse the default (backward) order of page navigation in WordPress, open the file template-functions-links.php (in WP 2.0) or link-template.php (in WP 2.1/2.2) and scroll down to the last function, posts_nav_link() 1. Next, find the last if statement and switch the order of the following two lines:

previous_posts_link($prelabel);
   [ ignore this line ]
next_posts_link($nxtlabel, $max_page);

Next, within the first line of the same function (beginning with function posts_nav_link), switch the order of the variables $prelabel='&laquo; Previous Page' and $nxtlabel='Next Page &raquo;'.

Finally, within the loop, make sure you are calling the function with the usual parameters in place. Something like:

<?php posts_nav_link(' | ','&laquo; Previous Entries','Next Entries &raquo;') ?>

That’s it! Your post navigation links (for index and category views) should now operate according to the following principle: left links point to older posts and right links post to newer posts.

References

  • 1 Not to be confused with previous_post_link() and next_post_link(), which provide navigational links to older individual posts and newer individual posts, respectively. Oddly enough, in the case of post-by-post navigation, WordPress gets it right: left links point to older posts and right links post to newer posts; however, this is not the case with page-by-page navigation, in which WordPress adopts the reverse strategy.