":)" এ প্রবেশ করার সময় বিভিন্ন স্মাইলি প্রদর্শন করুন


9

আপনি যদি :)ওয়ার্ডপ্রেসে প্রবেশ করেন তবে এটি স্বয়ংক্রিয়ভাবে এর সাথে প্রতিস্থাপন করে:

এখানে চিত্র বর্ণনা লিখুন

এর জন্য আলাদা স্মাইলি ব্যবহার করার উপায় আছে কি? :)


হাই কৃশ, আপনি ইতিমধ্যে যা চেষ্টা করেছেন (এবং কেন এটি কার্যকর হয়নি) আপনি আরও বিশদ সরবরাহ করতে পারেন?
kraftner

উত্তর:


14

:) থেকে 😎 এর ইমোজি ওভাররাইড করা 😎

কন্টেন্ট স্মিলি এর সাথে রূপান্তরিত হয়:

add_filter( 'the_content', 'convert_smilies' );

যেখানে এই অংশ এর convert_smilies()ফাংশন গুরুত্ব রয়েছে:

$content = preg_replace_callback( $wp_smiliessearch, 'translate_smiley', $content );

আমরা যদি উঁকি দিই translate_smiley()তবে আমরা নিম্নলিখিতটি পাই :

// Don't convert smilies that aren't images - they're probably emoji.
if ( ! in_array( $ext, $image_exts ) ) {
     return $img;
}

smilies_srcফিল্টার প্রয়োগ করার আগে ।

তাই এই ফিল্টারটি :)হাসির ক্ষেত্রে পাওয়া যায় না ।

আমাদের সাথে স্মাইলি সূচনা হয়েছে:

add_action( 'init', 'smilies_init', 5 );

এবং ফাংশন বর্ণনার মধ্যে smilies_init()আমরা নিম্নলিখিতটি পড়তে পারি :

প্লাগইনগুলি $wpsmiliestrans অ্যারেতে সেট করে ডিফল্ট স্মাইলি লিস্টটি ওভাররাইড করতে পারে , যা দিয়ে ব্লগার টাইপ করে কোডটি এবং ইমেজ ফাইলের মানটি দিয়ে।

এখানে বিশ্বব্যাপী $wpsmiliestransঅ্যারে:

$wpsmiliestrans = array(
    ':mrgreen:' => 'mrgreen.png',
    ':neutral:' => "\xf0\x9f\x98\x90",
    ':twisted:' => "\xf0\x9f\x98\x88",
    ':arrow:' => "\xe2\x9e\xa1",
    ':shock:' => "\xf0\x9f\x98\xaf",
    ':smile:' => "\xf0\x9f\x99\x82",
    ':???:' => "\xf0\x9f\x98\x95",
    ':cool:' => "\xf0\x9f\x98\x8e",
    ':evil:' => "\xf0\x9f\x91\xbf",
    ':grin:' => "\xf0\x9f\x98\x80",
    ':idea:' => "\xf0\x9f\x92\xa1",
    ':oops:' => "\xf0\x9f\x98\xb3",
    ':razz:' => "\xf0\x9f\x98\x9b",
    ':roll:' => 'rolleyes.png',
    ':wink:' => "\xf0\x9f\x98\x89",
    ':cry:' => "\xf0\x9f\x98\xa5",
    ':eek:' => "\xf0\x9f\x98\xae",
    ':lol:' => "\xf0\x9f\x98\x86",
    ':mad:' => "\xf0\x9f\x98\xa1",
    ':sad:' => "\xf0\x9f\x99\x81",
    '8-)' => "\xf0\x9f\x98\x8e",
    '8-O' => "\xf0\x9f\x98\xaf",
    ':-(' => "\xf0\x9f\x99\x81",
    ':-)' => "\xf0\x9f\x99\x82",
    ':-?' => "\xf0\x9f\x98\x95",
    ':-D' => "\xf0\x9f\x98\x80",
    ':-P' => "\xf0\x9f\x98\x9b",
    ':-o' => "\xf0\x9f\x98\xae",
    ':-x' => "\xf0\x9f\x98\xa1",
    ':-|' => "\xf0\x9f\x98\x90",
    ';-)' => "\xf0\x9f\x98\x89",
    // This one transformation breaks regular text with frequency.
    //     '8)' => "\xf0\x9f\x98\x8e",
    '8O' => "\xf0\x9f\x98\xaf",
    ':(' => "\xf0\x9f\x99\x81",
    ':)' => "\xf0\x9f\x99\x82",
    ':?' => "\xf0\x9f\x98\x95",
    ':D' => "\xf0\x9f\x98\x80",
    ':P' => "\xf0\x9f\x98\x9b",
    ':o' => "\xf0\x9f\x98\xae",
    ':x' => "\xf0\x9f\x98\xa1",
    ':|' => "\xf0\x9f\x98\x90",
    ';)' => "\xf0\x9f\x98\x89",
    ':!:' => "\xe2\x9d\x97",
    ':?:' => "\xe2\x9d\x93",
);

বা ভাল কসর্টড ডিসপ্লে:

Array
(
    [;-)] => 😉
    [;)] => 😉
    [:|] => 😐
    [:x] => 😡
    [:wink:] => 😉
    [:twisted:] => 😈
    [:smile:] => 🙂
    [:shock:] => 😯
    [:sad:] => 🙁
    [:roll:] => rolleyes.png
    [:razz:] => 😛
    [:oops:] => 😳
    [:o] => 😮
    [:neutral:] => 😐
    [:mrgreen:] => mrgreen.png
    [:mad:] => 😡
    [:lol:] => 😆
    [:idea:] => 💡
    [:grin:] => 😀
    [:evil:] => 👿
    [:eek:] => 😮
    [:cry:] => 😥
    [:cool:] => 😎
    [:arrow:] => 
    [:P] => 😛
    [:D] => 😀
    [:???:] => 😕
    [:?:] => 
    [:?] => 😕
    [:-|] => 😐
    [:-x] => 😡
    [:-o] => 😮
    [:-P] => 😛
    [:-D] => 😀
    [:-?] => 😕
    [:-)] => 🙂
    [:-(] => 🙁
    [:)] => 🙂
    [:(] => 🙁
    [:!:] => 
    [8O] => 😯
    [8-O] => 😯
    [8-)] => 😎
)

সুতরাং আমি যদি উপরের মূল মন্তব্যটি সঠিকভাবে বুঝতে পারি তবে আমরা নিম্নলিখিতটি করতে পারি:

/**
 * :) as the cool emoji
 */
add_action( 'init', function() use ( &$wpsmiliestrans )
{
    if( is_array( $wpsmiliestrans ) && get_option( 'use_smilies' ) )
        $wpsmiliestrans[':)'] = $wpsmiliestrans[':cool:'];

}, 6 );

তবে এটি কেবল পূর্বনির্ধারিত স্মাইলি কীগুলির জন্য $wp_smiliessearchকাজ করে।

তবে আমি বিশ্বব্যাপী অ্যারে পরিবর্তন করে এই প্রস্তাবিত পদ্ধতির পছন্দ করি না! আশা করি এর চেয়ে আরও ভালো কিছু আছে!

ডেমো প্লাগইন - 🎅

আমি এই জন্য একটি আবেদন সঙ্গে আসতে চেষ্টা করেছি। এটি ইতিমধ্যে বিদ্যমান কিনা আমি নিশ্চিত নই, তবে এটি এখানে রয়েছে:

<?php
/**
 * Plugin Name: Santa's Smile In December
 * Description: Change the emoji of :) to the Santa Claus emoji, but only in December
 * Plugin URI:  https://wordpress.stackexchange.com/a/218496/26350
 */
add_action( 'init', function() use ( &$wpsmiliestrans )
{
    // :) as Santa Claus
    if( 
           is_array( $wpsmiliestrans ) 
        && get_option( 'use_smilies' ) 
        && 12 == current_time( 'n' ) 
    )
        $wpsmiliestrans[':)'] = "\xF0\x9F\x8E\x85";

}, 6 );

বিশ্বব্যাপী মন্তব্যের জন্য ইসমাইল মিগুয়েলকে ধন্যবাদ , আমি সেই অনুযায়ী স্নিপেটগুলি আবার লিখেছি।

এখানে নতুন তৈরি টিকেট # 35905 দ্বারা পিটার Goosen একটি নতুন সম্বন্ধে smilies_transফিল্টার।

আপডেট - ওয়ার্ডপ্রেস 4.7+

নতুন ফিল্টারটি ওয়ার্ডপ্রেস 4.7+ এ উপলব্ধ হবে তবে এটির নামটি থাকবে smiliesনা smilies_trans

আমাদের উপরের উদাহরণগুলি লিখিত হতে পারে:

add_filter( 'smilies', function( $smilies )
{
    if( isset( $smilies[':cool:'] ) )
        $smilies[':)'] = $smilies[':cool:'];

    return $smilies;
} );

বা স্পষ্টভাবে এর সাথে:

add_filter( 'smilies', function( $smilies )
{
    $smilies[':)'] = "\xf0\x9f\x98\x8e";

    return $smilies;
} );

ডেমো প্লাগইনটি হয়ে যায়:

<?php
/**
 * Plugin Name: Santa's Smile In December
 * Description: Change the emoji of :) to the Santa Claus emoji, but only in December
 * Plugin URI:  https://wordpress.stackexchange.com/a/218496/26350
 */

add_filter( 'smilies', function( $smilies )
{
    // :) as Santa Claus
    if( get_option( 'use_smilies' ) && 12 == current_time( 'n' ) )
        $smilies[':)'] = "\xF0\x9F\x8E\x85";

    return $smilies;
} );

আমাদের $wpsmiliestransআর গ্লোবাল অ্যারে নিয়ে গণ্ডগোলের দরকার নেই!


হাসিগুলি তখন কি প্রতিটি ফন্টের সাথে কাজ করবে?
রোব_২২

আমার ট্যাব এবং পিসির মধ্যে স্মাইলিগুলি কী আলাদা দেখায় তা অবাক করুন। :-) যাইহোক, জিপ, গ্লোবালগুলির সাথে চারপাশে পরিবর্তনগুলি পছন্দ করতে পছন্দ করে না তবে এটি মনে হয় আপনি এই চুক্তি থেকে বেরিয়ে যাচ্ছেন সেরা। আমি মনে করি আমরা সম্ভবত একটি সঠিক ফিল্টার যুক্ত করার দিকে নজর দিতে পারি যা আমরা ক্রেডি গ্লোবাল পরিবর্তনের পরিবর্তে স্মাইলি ফিল্টার করতে ব্যবহার করতে পারি। ;-)
পিটার গুসেন

1
ট্র্যাকের টিকিট # 35905 জমা দেওয়া হয়েছে। আঙ্গুলগুলি ক্রস করতে দিন যাতে আমরা একটি সঠিক ফিল্টার পাই
পিটার গুজন

1
কীভাবে add_action( 'init', function() use (&$wpsmiliestrans){ $wpsmiliestrans[':)'] = "\xf0\x9f\x98\x8e"; }, 6 );?
ইসমাইল মিগুয়েল

1
এটি একটি প্রতিশ্রুতি - আসলে আমি useএখানে আমার জবাবগুলিতে প্রচুর শব্দটি ব্যবহার করি, তবে এটি গ্লোবালগুলি সম্পর্কে একটি ভাল অনুস্মারক, আবার ধন্যবাদ (:) <- সম্ভবত আমরা প্রত্যেকের জন্য আরও ভাল অ্যাক্সেসযোগ্যতার জন্য একটি প্রতিসৃত স্মাইলি ব্যবহার করতে পারি
বার্গায়ার

3

স্মাইলি ব্যবহারের বিষয়ে ওয়ার্ডপ্রেস কোডেক্স অনুসারে :

আপনি নিজের ইচ্ছুক চিত্রগুলি একই সার্ভারে আপনার সার্ভারে আপলোড করুন (ডাব্লুপি-কন্টেন্ট / চিত্র / স্মাইলিতে বলুন) এবং এটি আপনার থিমের ফাংশনে রেখে দিন: পিএফপি:

add_filter ('হাসি_সিসিআর', 'মাই_ কাস্টম_স্মিলি_সিসিআর', 10, 3);
   my_custom_smille_src ($ img_src, $ img, $ siteurl) function ফাংশন করুন {
       প্রত্যাবর্তন $ সাইটুরল। '/ ডাব্লুপি-সামগ্রী / চিত্র / হাসি /' $
   }
যে প্রতিস্থাপন করবে http://example.com/wp-includes/images/smilies/icon_question.gif সঙ্গে http://example.com/wp-content/images/smilies/icon_question.gif


নিশ্চিত নয় কেন কোডেক্স ডেমো 3 এর পরিবর্তে 10 ইনপুট আর্গুমেন্ট ধরে নিচ্ছে? তবে আমি মনে করি এটি ইমোজিদের দ্বারা ওভার্রাইড হয়ে গেছে।
বার্জায়ার

1
আমি মনে করি এটি অগ্রাধিকার হিসাবে বোঝানো হয়েছে, সুতরাং আদেশটি ভুল বলে মনে হচ্ছে। আমরা কোডেক্সে এটিকে পরিবর্তন করেছি, এই আশায় যে আমরা এটি ভুল করে
ফেলব

আমি কোডেক্সে আপনার সম্পাদনা সংশোধন করেছি এবং আপনার উত্তরে আপনার কোড সংশোধন করেছি। অনুমতি আর্গুমেন্ট হওয়া উচিত 3, এটা সেটিং 1যেমন আপনার কোড ব্যর্থ হবে $img, $siteurlএড়িয়ে যাওয়া হবে এবং তজ্জন্য আপনার ফিল্টার :-) মধ্যে অনির্দিষ্ট করা হবে
পিটার Goosen
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.