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. Nice trick. Is there a way to completely disable the smilies? Maybe comment out the whole function block….?

  2. 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 comment