HeadSpace Plugin

Apr 14, 2005 | Tags: , , , | Written by John
Version 3.6.2 of this plugin exists for WordPress 2+ only. You may want to use that unless you are running WordPress 1.5

download

Download: headspace.zip
Version: 1.4
Updated: September 18, 2007
Size: 2 KB

Support This Plugin!

While this software is being provided free to use, it takes considerable time to develop and support. If you do find it particularly useful or want to request a feature then consider donating money as an incentive for me to carry on developing it.

Thanks!

I have other plugins too!

Style-sheets are great and have completely transformed the web. WordPress is great too, and also happens to make extensive use of style-sheets, as do the many plugins and hacks that are available for it. This leads to a small problem: any plugin that requires style-sheet definitions must have them added to the main WordPress style-sheet. This is not a good thing for several reasons:

  • It's bad design to have a plugin modifying the main theme
  • If you change theme, you need to make the changes all over again (if you can remember what they were)
  • If you delete the theme then you have a lot of styles you don't need any more.

I initially created a basic style-sheet plugin to solve the problem, but this soon evolved into a general purpose head manager - head referring to a special section of an HTML document that provides the meta-data to describe style-sheets, keywords, and an assortment of other goodies.

Reasons for using the plugin

At its most basic, the plugin allows you to add any HTML head elements to:

  • Individual posts
  • Posts written by a specific users
  • Posts belonging to certain categories

Why would you want to do any of that? Well, there are many reasons. The most simple is that you might want posts from different categories to appear with different styles, or maybe a post written by the administrator is in one style while posts from normal users get another.

Installation

The plugin should support the One-click format of the WP-Plugin-Mgr plugin. If installing manually then:

  1. Copy headspace.php to your wp-content/plugins directory
  2. Activate plugin

You can find full details of installing a plugin on the plugin installation page.

Requirements:

There must be a call to wp_head () somewhere in your theme's header.php code. This is included in the default and classic themes provided with WordPress, and is likely to also occur in most themes you download. If the plugin does not work then check this first.

Using the plugin

Once the plugin is activated it is configured on a post-by-post basis by adding any of the following custom field data:

head_title Inserts an HTML title. Note that you are allowed one title per page, and your current theme probably provides it already.
head_keywords Add meta keywords, to be picked up by search engines. Keywords are separated with commas:

example,eggs,cheese

head_description Add a meta description, sometimes used by search engines.
head_style Add a style-sheet. The format of this is:
  • import type url - where type is an import type (screen, TV, projector etc)
  • link url
head_meta Add any generic meta data. The format of this is:

name="something" content="content" equiv="httpequiv"

head_raw Add raw data. This data will simply be inserted into the head - use at your own peril!

Wildcards

The plugin makes use of special 'wildcards'. These are tags that are replaced with dynamic data taken from the current post:

  • %%nickname%% - insert the nickname of the author
  • %%useremail%% - insert the email of the author
  • %%userid%% - insert the user ID of the author
  • %%categoryNid%% - insert the Nth category ID of the post (start at 1)
  • %%categoryNdesc%% - insert the Nth category description of the post (start at 1)
  • %%categoryNname%% - insert the Nth category name of the post (start at 1)
  • %%title%% - insert the title of the post
  • %%date%% - insert the date the post was created
  • %%modifed%% - insert the date the post was modified
  • %%excerpt%% - insert the post excerpt
  • %%id%% - insert the post's database ID
  • %%gid%% - insert the relative URL to the post

Any number of wildcards can exist within a single keyword.

Examples

Add an extra style-sheet

head_style = link /wp-content/styles/example/extrastyle.css

Add a style-sheet that changes depending on who authored the post

head_style = link /wp-content/styles/users/%%nickname%%/extrastyle.css

Add keywords to the post

head_keywords = eggs,sandwiches,%%title%%

Add a description to the post

head_description = %%excerpt%%

Adding custom data

To add custom data to posts, and so get the plugin to work, you need to:

  1. Enable 'Advanced Editing'
    • Either press the 'Advanced Editing' button on the post
    • Or enable Advanced Editing by default in the Options / Writing section of the administration screen
  2. Add a new custom field with a keyword being one of the above, and the value being your chosen value

The keywords should not be entered into the post itself.

Global meta data

A new feature is the ability to have a list of globally applied meta-data. That is, meta-data that is applied to every post regardless of whether it is defined in the post custom data. This would be useful to define site-wide styles and descriptions.

The global meta-data is a text file located at wp-content/plugins/headspace_global.txt. It is a simple list of keyword and value, one per line separated with a return. All keywords and data follow the same syntax and rules as described above:

head_title This post was updated at %%modified%%
head_description %%excerpt%%
head_style /wp-content/styles/%%nickname%%/style.css

See also

Post-plugin research shows that Dougal Campbell wrote the plugin HeadMeta, which does a similar job to this one. The moral of the story: research before writing!

Share This

Comments (page 2 of 6)

  1. Jamie :

    Dec 20, 2005 12:52 pm

    I'm trying to use the headspace plugin conditionally for keywords, commments, and title tag. I want to have a default set of tags that apply to every page, and the allow those to be overridden on a page-by-page basis. How do I do this with this plug-in? All help welcome! Thanks.

  2. Mikenna :

    Jun 19, 2005 12:01 am

    Hi,

    Just setting up my blog. Ugh, really want to use your plugin - it's awesome. However, can't get it to work.

    When I try to access single post, I get this error message:

    Warning: Invalid argument supplied for foreach() in /www/r/romanticcyni/htdocs/wp-content/plugins/headspace.php on line 162

    I tried removing the blank line, but then I get the above message for line 322.

    Can you help? Thanks in advance for any help you can give.

  3. c0y0te :

    May 17, 2005 3:06 pm

    Hi there,

    I've installed your plugin, and used it on a number of recent posts, but I still don't see any meta data being generated when I "view source" on either the main page, or the invividual posts. Can you help please?

    I'm using head_title=%%title%%, head_description=%%excerpt% and head_keywords="a,b,c" as required. Thanks in advance. Please email me if you can help.

  4. Mark Fleming :

    Apr 20, 2005 1:57 pm

    Uh Oh. I just learned something else. You said earlier that if there are two META KEYWORD tags that you thought both would be used.

    Well, I've been researching this and I see that most people are reporting that search engines will only look at the first META tag if there are more than one of the same type.

    So, unless your plugin can replace the other Meta tag that might be in there (and there has to be one for the main--not individual post--page), then the only solution I can see is to move the wp_head call up to the top of the HEAD section so it always comes before the hard-coded one.

  5. John (author) :

    Apr 20, 2005 1:54 pm

    They just call the plugins that modify the header and footer. With no suitable plugins they do nothing. HeadSpace attaches to the wp_head function and does its stuff wherever the wp_head call is made.

  6. Mark Fleming :

    Apr 20, 2005 1:40 pm

    Thanks.

    I searched and searched the WP docs and forum to learn more about wp_head but all I can find is that it is required in the header. I also see that wp_footer is required in the footer.

    That's WP, now I'm clear on everything LOL!

    Can you take a moment to explain what these do?

  7. John (author) :

    Apr 20, 2005 11:35 am

    And there goes any reputation I had for being consistent...

    I meant wp_head, not wp_meta! There is a big confusion in terminology in the docs.

    So, you need to put the call to wp_head before the CSS. wp_meta belongs in the sidebar as the docs rightly say.

    Phew

  8. Mark Fleming :

    Apr 20, 2005 9:46 am

    Aha!

    It's in my Sidebar template. That seemed like a strange place; I would have htought to put it in the Header template. But, then I read the WP docs and it saidthe following. Wouldn't it be better in the header?

    wp_meta

    Should be included in the Meta section of your theme's sidebar.php or somewhere similar.

  9. John (author) :

    Apr 20, 2005 6:59 am

    The data gets inserted wherever the call to wp_meta is located - modify your header.php so the function is before the CSS data.

  10. Mark Fleming :

    Apr 20, 2005 6:29 am

    Thanks, that worked.

    Is there anyway you could get it to insert the META lines right ater the since that is where people generally put them? right now, it goes way down below all the CSS stuff.

Leave a comment


XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Home | Software | Terms & Conditions | Sitemap | John Godley © 2008
Close
E-mail It