ButlerBlog

chad butler's weblog

  • About
  • Blog
  • WordPress Plugins
  • Contact

Archives for October 2010

Write a simple WP plugin to add the trademark symbol (™) to your mark

By Chad Butler 1 Comment

You have a trademark you need to mark on your WordPress site, but you don’t want to search through the site to find each occurrence and update each post?  I have developed a plugin for you that will ™ or ® your content on the fly.  But if you are the do-it-yourselfer type, then here’s a way to make a simple plugin to filter every instance of your trademark in posts, pages, and titles.

It is assumed that the reader has a basic working knowledge of PHP as I am not going to go into explaining the particulars of the PHP constructs.  While you could just copy and paste, it will be easier if you know the basics.

Filter the Content

The first function will go through the_content and replace every instance of your trademark with your trademark(tm).  We will call this tm_the_content.  WP stores the content of a post or a page in the variable $content, which we will pass to the function.

function tm_the_content( $content )
{
   ... we'll add code here later ...
}

We will use str_replace to find the instances of Our-Trademark (replacing “Our-Trademark” with the actual trademark text you are working with) in $content and replaced it with Our-Trademark(tm).  Note, I am using &#0153 for the trademark symbol, but you could put in place <sup> superscript or <div> and CSS, or what suits your fancy.  I like keeping it simple, though.  (Note: you can also replace &#0153 with &#174; to get the registered trademark symbol (r) ).

$content = str_replace("Our-Trademark", "Our-Trademark™", $content);

Now $content has all instances of Our-Trademark replaced with our trademark(tm), but we need to send back the filtered content:

return $content;

Functions and Filters:

function tm_the_content($content)
{
  $content = str_replace("Our-Trademark", "Our-Trademark&#0153", $content);
  return $content;
}

WordPress stores the title of a post or a page in the variable $title.  Filtering $title is exactly the same as filtering $content, so we can build our function tm_the_title by essentially copying tm_the_content and changing $content to $title:

function tm_the_title($title)
{
  $title = str_replace("Our-Trademark", "Our-Trademark&#0153", $title);
  return $title;
}

And you thought this was going to be hard.  😉

Now we need to fire these functions at the appropriate time.  As I mentioned earlier, in WordPress, we do this by using add_filter.

In case you were unaware, WordPress has a built-in function called add_filter() that will fire a function to filter your content.  We will use two instances of add_filter() to filter both the_content, the function that gets the $content of a post or a page, and the_title, the function that gets, you guessed it, the $title.

When you use add_filter(), you need to send the function two things, what you are filtering, and the function to use to do the filtering:

add_filter( $tag, $function_to_add, $priority, $accepted_args );

The last two parameters are optional, and in this case, we will only be using the first two.  We will use this twice in our plugin to fire each of our functions:

add_filter('the_content', 'tm_the_content');
add_filter('the_title', 'tm_the_title');

Put it all together:

<?php
add_filter('the_content', 'tm_the_content');
function tm_the_content($content)
{
  $content = str_replace("Our-Trademark", "Our-Trademark&#0153", $content);
  return $content;
}

add_filter('the_title', 'tm_the_title');
function tm_the_title($title)
{
  $title = str_replace("Our-Trademark", "Our-Trademark&#0153", $title);
  return $title;
}
?>

Here is a sample of the code.

Well that’s it.  I hope that you will find this snippet of code useful.

  • Facebook
  • Twitter
  • Email
  • Print
  • More
  • LinkedIn
  • Reddit
  • Tumblr
  • Pocket
  • Pinterest

Filed Under: Blogging Tips, WordPress Tagged With: blogging, code, plugins, tips, tools, tutorials, WordPress

Howto: Write a simple keyword meta tag plugin for WordPress

By Chad Butler 3 Comments

There are various SEO plugins available for WordPress, but let’s say you have some unique needs or for some other reason want to write your own.  How would you go about doing that?

Well, this tutorial is going to show you how to write a very simple plugin to place a basic keyword meta tag in the head of specific posts in WordPress.  (Note: this is not an advanced course in SEO plugin development.  The purpose here is to give you some foundational information that can be applied to more advance projects.)

We are going to do the process in a simple function.

function my_very_simple_meta()
{
   ... some code here ...
}

Keywords will be stored in a custom field for the post so we will need to know the post ID.  The my_very_simple_meta function will be run outside the Loop, so we will need to find the ID using a method other than the_ID(); .

We will declare the $post global and use $post->ID to return the post’s id.

function my_very_simple_meta()
{
  global $post;
 $postID = $post->ID;
}

As I said, we are going to store the keywords in a custom field for the post.  To retrieve that, we use the WP function get_post_custom_values.  This function needs to know the custom field name and the post id (which we retrieved above). (For more information, see the WordPress Function Reference.)

get_post_custom_values($key, $post_id);

This function returns a value as an array, so we will store it in $arr.

$arr = get_post_custom_values('simple-meta', $postID);

Since this particular array is only going to have one value, the keywords will be in $arr[0] (the first value).  We can write the meta tag with this:

echo "";

Putting that together we get the array, then echo (print) the [0] value of the array in a meta tag:

$arr = get_post_custom_values('simple-meta', $postID);
echo "";

Now, what if this particular post does not have any keywords assigned to a custom field called “simple-meta”?  We’ll need to check that with a conditional statement:

if(get_post_custom_values('simple-meta', $postID)){
  ...something here if the condition is true...
}

If that statement is true, we will get the array and write the meta tag.  Let’s put it all together in the function:

function my_very_simple_meta()
{
  global $post;
 $postID = $post->ID;

 if(get_post_custom_values('simple-meta', $postID)) {
 $arr = get_post_custom_values('simple-meta', $postID);
    echo "&lt;meta name=\"keywords\" content=\"".$arr[0]."\" /&gt;";
  }
}

Great.  That is going to write a keyword meta tag if there is a custom field for the post called “simple-meta”.  And we can do it outside the Loop.  Now how do we get that into the <html><head> of the document?

WordPress has another fantastic action called wp_head().

add_action('wp_head', 'my_very_simple_meta');

This will fire our new function at the end of the head.

Putting it all together now in a finished file:

<?php
/*
Plugin Name: My Very Simple Meta
Plugin URI:  http://butlerblog.com/plugins/my_very_simple_meta
Description: This is a very simple plugin to place custom keyword meta tags in the &lt;head&gt; of a post or page.
Version:     0.1
Author:      Chad Butler
Author URI:  http://butlerblog.com/
*/

function my_very_simple_meta()
{
  global $post;
 $postID = $post->ID;

 if(get_post_custom_values('simple-meta', $postID)) {
 $arr = get_post_custom_values('simple-meta', $postID);
    echo "&lt;meta name=\"keywords\" content=\"".$arr[0]."\" /&gt;";
  }
}

add_action('wp_head', 'my_very_simple_meta');
?>

[View a formatted sample here.]

Exciting!  “But how do I use it,” you ask?  Save your file as something like my-very-simple-meta.php and load this to your plugins folder.  Go to the WP plugin admin and activate it.  (Note: if you copied the example verbatim, you’ll find the plugin as “My Very Simple Meta” in your list of plugins.)

Once activated, you’ll need to add keywords to a post or a page that you are going to use this for.  Create a custom field called simple-meta and put your keywords in the value field.  That’s it.  If you view the source of your page, you should see these keywords in the head as a meta keyword tag.  You are on your way to becoming a super SEO WordPress plugin guru.

  • Facebook
  • Twitter
  • Email
  • Print
  • More
  • LinkedIn
  • Reddit
  • Tumblr
  • Pocket
  • Pinterest

Filed Under: WordPress Tagged With: code

WP-Members™ 2.3.2 Bug Fix – Apostrophe/Quotation marks in dialogs

By Chad Butler 7 Comments

Following the release of WP-Members 2.3.2, there was a bug brought to my attention by an astute user:

If you are using apostrophes in the custom dialog messages via the plugin’s admin panel, there will be slashes put into your content as the plugin neglects to clean up user input with “stripslashes.”  This bug actually effects all releases from 2.2.0 on to 2.3.2.

This has been address in my next release (which will include bug fixes, but will also be a feature release as we add CAPTCHA).  In the meantime, if it effects you, you can make some simple changes to correct it:

Change line 28 of wp-members-dialogs.php from:

<?php echo $wpmem_dialogs[0]; ?>

to:

<?php echo stripslashes($wpmem_dialogs[0]); ?>

Change line 195 of wp-member-admin.php from:

<textarea id="" name="<?php echo " rows="3" cols="50"><?php echo $wpmem_dialogs[$row]; ?></textarea>

to:

<textarea id="" name="<?php echo " rows="3" cols="50"><?php echo stripslashes($wpmem_dialogs[$row]); ?></textarea>

Hope this helps.

  • Facebook
  • Twitter
  • Email
  • Print
  • More
  • LinkedIn
  • Reddit
  • Tumblr
  • Pocket
  • Pinterest

Filed Under: WP-Members Tagged With: plugins, WordPress, WP-Members

  • 1
  • 2
  • 3
  • Next Page »

Join Us!

I will never share your information. No spam. No junk. No kidding. Unsubscribe anytime.

Recent Posts:

  • YouTube Success: Key Tips for Enhancing Video Optimization and Visibility
  • Mobile App vs. Mobile Website Ideal Choice for your Business
  • Top Strategies to Boost Your Brand’s Visibility and Impact
  • Advanced Blogging Strategies: Using Analytics, A/B Testing, and Conversion Optimization Techniques to Grow Your Audience
  • Unlock Real-Time Process Insights to Save Time and Money
  • How Writers Can Attract More Audience Attention
  • Dress for Success – Even at Home
  • Mastering the Art of Crafting SMART Marketing Goals
  • Rediscover Your Brand Story: 7 Tips for Refreshing Your Company Identity
  • Creating Engaging Content: Tips for a Successful Content Marketing Strategy

Archives

  • About
  • Blog
  • Archive
  • Contact

Site powered by WordPress, running on the Genesis Framework from StudioPress.

Unless otherwise noted, content on this site is © 2006-2025 ButlerBlog and may not be reproduced without express written permission from the author.

Some content may include affiliate links for which this site receives a small commission.