Posted Post

Posted People, Posted Life.

Archive for apply_filters

Ultimate WP Post Name URL Sanitize Solution

Few days ago, I was not satisfied with the ugly URL of some post, so I hacked “sanitize_title” function. After I said that time, I also not satisfied with super-long URL and want short them. After short WP category permalink structure today, I put more hacked code in sanitize_title function for short URL. Anyhow, shit happens and I noticed sanitize_title function also used almost everywhere, special when normal visitor visit and process the URL. I don’t want to explain how this mess up, just forget it.

So, I need new method of short and nice URL for article post. I need find a place for “apply_filters” or “do_action“, after quite long time track from /wp-admin/post.php, finally I found at sanitize_post_field function, $value = apply_filters(”pre_$field”, $value); to pretreat all submit data.

Here is my filter: Read the rest of this entry »

Hack WordPress “sanitize_title” Function

I use English as title only, recently I noticed some of my blog post has “%” in url (e.g.) or too too many dashes “—” in url (e.g.). !!!!! (2008/6/23 .. forget this method, check Ultimate WP Post Name URL Sanitize Solution)

So unacceptable. So I check the wordpress code and update the following:

function sanitize_title($title, $fallback_title = ”) {
$title = strip_tags($title);
$title = preg_replace(’/&.+?;/’, ”, $title); // Kill entities
$title = preg_replace(”/[^a-z0-9]+/i”, ” “, strtolower($title)); // Remove all non-english and non-number code
$title = trim(preg_replace(”/ {2,}/i”, ” “, $title)); // Remove extra space
$title = apply_filters(’sanitize_title’, $title);
if (empty($title)) {
$title = $fallback_title;
}
return $title;
}

at “formatting.php”.

Next thing: I serious think about shorter very long url (the post_name is varchar(200) in database)