geeky · php code · wp hacks

disable wordpress smiley for a certain post/page

okie, i thought someone has figured it out by now. but when i asked on the wordpress board, i got no response. so i digged around and figured a hack for it.

i noticed sometimes esp. on some pages, the smiley conversion does a poor job and converts the wrong text into smilies. it really mars my content. personally i want to be able to just turn the smiley off for a certain post or page.

the best way i can think of to do it is via a hack.

open your wp-includes/functions-formatting.php file, try find the function (possibly line 576):

function convert_smilies($text) {

then under it, replace:

global $wp_smiliessearch, $wp_smiliesreplace; $output = ''; if (get_settings('use_smilies')) {

with:

global $wp_smiliessearch, $wp_smiliesreplace, $post; $output = ''; $smileykey = get_post_meta($post->ID, "disable_smiley", TRUE); if (get_settings('use_smilies') && $smileykey != 'true') {

that’s all i needed to do.

now next time you write a new post/post, simply create a custom field with the key disable_smiley and value true to disable smiley conversion for just that post/page. isn’t that neat? 🙂

12 thoughts on “disable wordpress smiley for a certain post/page

  1. If you want to avoid smiley face parsing of something you type, you can put the HTML 4 zero-width non-joiner character entity reference, [ampersand]zwnj[semicolon], between the colon and the next letter.

    Try it (alasno WordPress preview!) :opera , :o‌pera

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s