Restrict Any WordPress Post/Page for Any Specific User Role

Sometimes we need to restrict any specific wordpress post or page for any specific user role. For this there are lots of plugin. While replying to a facebook group post where someone asked something lightweight or no heavy plugin. So tried to write a simple one file plugin with hard coded page or post id and user role which can be used in theme. Here I am sharing the code if that helps other who is reading this article.

https://gist.github.com/manchumahara/b4930caec8119ecf258f70a6b7248d09

গুটেনবার্গ চিন্তা: ওয়ার্ডপ্রেস

#গুটেনবার্গ_চিন্তা #ওয়ার্ডপ্রেস

গুটেনবার্গ এডিটরের ক্ষেত্রে একটা পারফরমেন্স সমস্যা করবে অসংখ্য প্লাগিন থেকে ব্লক এর জন্য জাভাস্ক্রিপ্ট এবং সিএসএস ফাইলে লোডিং নিয়ে। রহিমের বানানো দুইটা ব্লক এবং করিমের বানানো দুইটা ব্লক … এই রকম ব্লক যুক্ত করতেই থাকবে ব্যবহারকারিরা। কেউ বলতে এখন যে সব বিজুয়াল পেজ বিল্ডার আছে তাদের ক্ষেত্রেও একই ঘটনা ঘটে। হ্যাঁ ঠিক, তবে কেউ চাইলে এখন পেজ বিল্ডার ছাড়া ক্লাসিক্যাল এডিটর ব্যবহার করতে পারে। কিন্তু গুটেনবার্গকে এগিয়ে নিতে ওয়ার্ডপ্রেস কয়েক বছর পর ক্লাসিক্যাল এডিটর ফেলে দিবে কোর থেকে। মানে সবাই ডিফল্ট বাধ্য হবে গুটেনবার্গ ব্যবহার করতে যদি নিজে থেকে অন্য এডিটর প্লাগিন ইনস্টল না করে। আমি কিছু কমিউনিটি আলোচনাতে গুটেনবার্গ এডিটর দিয়ে আগের লেখা কনটেন্ট লোডিং টাইম অনেক বেশি এই ধরনের অভিযোগ পেয়েছি। যদিও আমি জানি শুরুতে পারফর্মেন্স সমস্যা থাকলে আস্তে আস্তে এটা ইম্পরুভ হবে, একদিন আমরা ভুলে যাব ক্লাসিক্যাল এডিটর বলে কিছু ছিল। অন্যদিকে দ্রুপালও গুটেনবার্গকে ফর্ক করে আগাচ্ছে।

Are We Adding add_shortcode Properly in Plugin?

WordPress one of the most popular function is add_shortcode. We can use this in theme or plugin.
The most simple way of adding a new shortcode is like

add_shortcode('my_gf_unique_name', 'callback_function');
function callback_function($atts){
  //do your duty for your gf unique name
}

But we should not use the add_shortcode in same way in plugin but call it from an ‘init’ action callback.

add_action('init', 'init_callback');
function init_callback(){
 add_shortcode('my_gf_unique_name', 'callback_function');
}

function callback_function($atts){
  //do your duty for your gf unique name
}

Reference: WordPress Developer portal plugin handbook

Everyday I am trying to learn something new. Whenever I find something new like this I try to update my old plugins and use the new learning in new plugin.

What did you learn new this week ?

Embed in WordPress Outside of Editor or Content

Embed anything in wordpress is so easy, just paste the url in the editor and check the preview. WordPress automatically parse url in the content of the editor and embed almost near 20+ urls from social media audio, video, links etc. Here is a list of available auto embed links or services. But how about if we need to embed or parse any url outside of wordpress editor or inside theme or plugin custom code ? It’s just easy. Just check the following code snippet

https://gist.github.com/manchumahara/224cc85a1c8df6d6128b6901ba0298b9

WordPress: How to Check if the is_front_page a page ?

In WordPress reading option if you select page as home then that is called frontend page technically and in that is_home() returns false as it’s not the actual archive page home page that we find default. There is another helper function in wordpress to check if regular or page based home using is_front_page() but if you check in plugin or theme using is_front_page() it will return true for both regular archive home or frontpage based home page(if you set a page as home). So, how can we check if the home page is page based front page or archive base front page or home ?

https://gist.github.com/manchumahara/9112df535b704409bc4ba24311c540d6

First Time Became WordPress Core Contributor

একটা ফাংশনে একটা অতিরিক্ত প্যারামিটার যুক্ত করে হয়ে গেলাম ওয়ার্ডপ্রেস 4.9 এর কোর কন্ট্রিবিউটার 🙂

আমি অবশ্যই বলতে চাই ওয়ার্ডপ্রেস এর কোর কমিটাররা খুবই আন্তরিক এবং হেল্পফুল। অন্তত আপনি কোন ইস্যু পোস্ট করলে দ্রুত উত্তর পাবেন, কোন প্যাচ পাঠালে দ্রুত যাচাই করে। অন্যরা যারা কোর কমিটার না কিন্তু রেগুলার ইস্যু গুলোতে কন্ট্রিবিউট করে তারা আপনাকে সাহায্য করবে।

যে কেউ https://core.trac.wordpress.org/ এখানে গিয়ে ওয়ার্ডপ্রেস এর কোরের কোন বাগ পেলে ইস্যু সাবমিট করতে পারেন। যদি আপনি জানেন ফিক্স করার জন্য কি ধরনের কোড পরিবর্তন দরকার তাহলে তা করে প্যাচ আকারে সাবমিট করতে হবে।

অনেক সময় যখন আপনি কাস্টম কিছু বানাচ্ছেন হয়তো দেখছেন কোর কোডে নতুন কোন হুক যুক্ত হলে সুবিধা হবে বা কোন হুকে নতুন একটা প্যারামিটার থাকা যুক্তিযুক্ত আপনি সেই পরিবর্তন করে প্যাচ সাবমিট করতে পারেন। গ্রহনযোগ্য যে কোন কিছু খুব যত্নের সাথে ওয়ার্ডপ্রেস এক্সেপ্ট করে এবং বিষয়টা দ্রুত। আপনাকে কোন পেইন এর ভেতর দিয়ে যেতে হবে না এবং মনে হবে না যে কেউ আপনার রেকয়েস্ট নজরেই আনছে না।

A letter to our bengali community of joomla and wordpress

to whom it may concern or not concern

নোটঃ একান্ত ব্যক্তিগত মতামত, পজেটিভ সমালোচনাও আছে কিছু জায়গায়, কারো কারো ব্যক্তিগত ভাবে লাগতে পারে কিন্তু সত্য সব সময় কঠিন হবে এটা মেনেই বাকীটুকু পড়তে হবে।

// দেশের বিভিন্ন টেক ইভেন্ট আমার অংশ গ্রহন এই রকম প্যাটার্নের ০ ০ ০ ১ ০ ০ ১০১০০০১ মানেই বুঝত পারতে ৩/৪টা ইভেন্টের (যা আমার কাছের সাথে সম্পর্কিত ) গড়ে একটিতে যাওয়া পড়ে। শেষ দুইটি ইভেন্টে অংশগ্রহন ছিল এক/ আজকে জুমলা ৩.x বাংলা অনুবাদ দুই/ ওয়ার্ডপ্রেসিয়ান গ্রুপ এর সম্ভবত ৬ষ্ঠ বা ৭ম মিটাপ। নিজের কিছু ব্যক্তিগত কারণ যেমন, ইভেন্টের দিন সময় বের করা , ইভেন্টে আমার কাজ যদি হয় শুধু বসে বসে শোনা (এক্ষেত্রে এক টানা কিছুক্ষন বসে থাকার পর আবার শারীরিক সমস্যা দেখা দেয় যেটা স্নায়ুবিক)

// দেশে যারা প্রডাক্ট বিক্রি করে তাদের সবাই এনভাটো গিয়ে বিক্রি করে না। অনেকেই নিজদের মার্কেট প্লেস তৈরি করে বিক্রি করে। এর মানে দাড়াচ্ছে এনভাটোর দেশের বর্তমান অনেক অথর যখন মার্কেটপ্লেস কি এটাই জানতো না তখন আমরা কয়েক জন ছোট স্টার্ট আপ দাড় করিয়ে কেউ বিভিন্ন সিএমএস এর জন্য এক্সটেনশন আবার কেউ থীম বা টেমপ্লেট বানিয়ে বিক্রি করতাম। তার মানে দাড়াচ্ছে আমাদের কেউ কেউ এখনো বড় মার্কেট প্লেসের সাথে পাল্লা দিয়ে নিজেদের প্রডাক্ট নিজেদের মার্কেটপ্লেসে বিক্রি করে যাচ্ছি এখনো।

//আমার শেষ থেকে অংশগহন করা ২য় ইভেন্ট ছিল ওয়ার্ডপ্রেসিয়ান এর ৬ষ্ঠ বা ৭ম মিটাপ, সেখানে আমি আর জুমশেপার এর কাউছার ভাই গিয়েছিলাম। একজন সাধারণ অংশগ্রহনকারী হিসাবে গিয়েছিলাম এবং যথেষ্ট ধৈর্য ধরে প্রায় প্রতিটি প্রেজেন্টেশন এর কম বেশি শুনেছি মাঝ খানে টুক টাক আড্ডা ছাড়া। শেষের দিকে যখন কাউছার ভাইকে জুমলার টেমপ্লেট ডেভেলপার হিসাবে পরিচয় করায়ে দেওয়া হল তখন আমি একসময় বের হয়ে আসছি। আমার সামান্য লেগেছিল, কারণ আমরা দুইজনই জুমলা নিয়ে কাজ করে বেশি পরিচিত, উনি টেমপ্লেট বানান, আমি এক্সটেনশন। কাউছার ভাইয়ের উপর কোন রাগ নেই, সে তার কাছের যোগ্য সম্মান পাবে, তার কাজকে আমিও সম্মান করি। কিন্তু মনে হচ্ছে, কিছু মানুষ ওয়ার্ডপ্রেস এর উপর ডেভেলপ করে ফাটিয়ে ফেলতেছে কিন্তু জুমলার এক্সটেনশনের নাম শুনে নাই কখনো ? যেহেতু আমি জুমলা বাংলাদেশ গ্রুপের এডমিনদের একজন এবং যদি জুমলার কোন ইভেন্টের সঞ্চালক থাকি আর সেখানে ওয়ার্ডপ্রেস এর কোন নোটেবল ডেভেলপার থাকে তাহলে আমি তাকে অবশ্যই ডেকে নিব। কারো সাথে যদি আমার ব্যক্তিগত কোন সমস্যাও থাকে কমিউনিটি ইভেন্টে সেটা আমি কোন ভাবেই প্রকাশ করব না।

//ডিজিটাল ওয়ার্ড এর সিএমএস কনফারেন্সে যাওয়ার সময় ম্যানেজ করতে পারি নাই। তবে জানতে পারলাম সেখানে এমন স্পিকারও সিলেক্ট করা হয়েছে যে, জুমলা ফালতু বা জুমলা ৪২০ এমন কথাও বলেছে। আমার মনে হয় জেনে কথা বলা উচিৎ। যে জুমলা এবং ওয়ার্ডপ্রেস বা আরো অন্য সিএমএস নিয়ে জানে সে বুঝতে পারবে এক একটা সিএমএস এর ফিলোসফি, লার্নিং কার্ভ, মার্কেট প্লেস, ব্যবহারের রেটের আপ্স -ডাউন, ব্যবহারের প্রয়োগ এক এক রকম। এটা নির্ভর করে দৃষ্টিভঙ্গির উপর । একটা ছোট উদাহরন দিলে সহজ হবে বুঝতে, একবার জুমলার একটা ইভেন্ট শেষে আমরা সবাই খেয়াল করলাম, কাউছার ভাই এর লেকচার ছিল জুমলা দিয়ে সাইট বানানোর জন্য আপনাকে কোডিং জানতে হবে না আর আমার লেকচার ছিল কোডিং জানতে হবে। যেহেতু উনি টেমপ্লেট নিয়ে বলেছেন উনার পারসপিক্টিভ থেকে, আমি এক্সটেনশন নিয়ে বলেছি আমার পারস্পিক্টিভ থেকে। দুইজনই সঠিক। এর মানে দাড়াচ্ছে আপনি যদি জুমলা নিয়ে সমালোচনা করেন তাহলে এটা জেনে করেন। ডিজিটাল ওয়ার্ল্ডে জুমলার এক্সটেনশন ডেভেলপ নিয়ে একটা লেকচার/স্পিক থাকতেই পারত। কমিউনিটিতে পোস্ট হতে পারত আগ্রহী স্পীকার এবং টপিক লিস্ট নিয়ে। হয়তো বেসিস এটা ম্যানেজ করে, সেটা তাদের ব্যাপার। আমি আমার একান্ত ব্যক্তিগত মতামত দিচ্ছি।

// একই বিষয় নিয়ে কাজ করার জন্য অনেক গুলো গ্রুপ থাকতে পারে, জাতীয় ইভেন্টে সবাইকে এক্টিভ গ্রুপগুলোকে সমন্বয় করা উচিৎ, ব্যক্তি কেন্দ্রিক সিদ্ধান্ত না নিয়ে।

//কোন অপারেটিং সিস্টেম ব্যবহার করছি সেটা আমরা জন্য এত গুরুত্বপূর্ণ না, সেই অপারেটিং সিস্টেমে আমি স্বাচ্ছন্দে কাজ করছি পারছি কিনা সেটাকে গুরুত্ব দেয়।

//জুমলা সম্পর্কে জানার আগে থেকে ওয়ার্ডপ্রেস এর প্রেমে পড়েছি। পরে চাকরী করতে গিয়ে জুমলাতে কাজ করে এটাতেও কাজ শুরু করি। জুমলা, ওয়ার্ডপ্রেস কিংবা মুডল এগুলোর প্রতিটিতে কাজ করছি প্যাশন থেকে, টাকা আয় করার জন্য না। টাকা আয় একটি প্রাকটিক্যাল ধাপ কারণ কাজ করলে টাকা আসবে।

// আমি হনু বলে আমার আশে পাশের বাগানে আর কোন হনুমান থাকতে পারবে না বা আর কেউ কাজ করতে পারবে না এমন ভাবার কারণ নাই। আমি ‘x’ নিয়ে কাজ করছ বলে আশে পাশের সবাই ‘x’ নিয়ে কাজ করবে এমন ভাবার কিছু নাই। সহজ কাজ সবাই করে, কঠিন কাজ করার লোকের অভাব। ‘ক’ প্রতিষ্ঠান ওয়ার্ডপ্রেস নিয়ে কোর্স করালে ‘খ’ গ্রুপের গাত্র দাহ হবার কিছু নাই। ‘গ’ জুমলার একটা ভালো টেমপ্লেটে বানালে ‘ঘ’ কম্পানীর এটা নিয়ে ঘষাঘষির কিছু নাই। পারলে ভালো কিছু কর, পারলে ভালো কাজের প্রশংসা কর, খারাপ কাজের পজেটিভ সমালোচনা কর। কিছুদিন আগে রাগীব ভাইয়ের শিক্ষক সাইটের ওয়ার্ডপ্রেস এর একটা কোর্স নিয়ে ওয়ার্ডপ্রেসিয়ান গ্রুপের সাধারণ সদস্যের পাশাপাশি এডমিনদের পক্ষ থেকে কুৎশিত ভালো নেগেটিভ সমালোচনা করতে দেখেছি। দ্বায়িত্বশীলতা আর বালখিল্যতা এক নয়। আমি নিজেও ওয়ার্ডপ্রেসিয়ান গ্রুপের নিয়মিত সদস্য, সময় পেলেই সাহায্য করি অন্যদের যেমনটা জুমলা বাংলাদেশ গ্রুপে। নতুনরা উদ্ভুৎ ভাবে প্রশ্ন করলে তাদের মাথা ঠান্ডা করে কোন সময় মজা করে বা কোন সময় বকা দিয়ে সাহায্য করার চেস্টা করি।

//কাউকে ফলো না করে নিজের মত নিজের ট্রেন্ড নিয়ে চলতে পছন্দ করি। কেউ আমাকে ফলো করুক না করুক তা নিয়ে আমার কোন চিন্তা নাই। আমার কাউকে ফলো করতেই হবে এমন ভাবার কিছু নাই। তবে কমিউনিটি ইভেন্ট গুলোতে আমি সবাইকে সম্মান দেওয়ার চেস্টা করি এবং সবার মতামত গ্রহন করে কাজ করতে পছন্দ করি, দিন শেষে কাজগুলো শেষ করতে পছন্দ করি।

// হুট জুমলা বা ওয়ার্ডপ্রেস নিয়ে কাজ করে টাকা করা টাইপ লোক আমি নই, আমি আমার ক্যারিয়ার এর শুরু থেকে এগুলো নিয়ে কাজ করি, যতদূর সম্ভব কমিউনিটিতে কন্ট্রিবিউট করার চেস্টা করি। প্যাশন থেকে করি।

নোটঃ একান্ত ব্যক্তিগত মতামত, পজেটিভ সমালোচনাও আছে কিছু জায়গায়, কারো কারো ব্যক্তিগত ভাবে লাগতে পারে কিন্তু সত্য সব সময় কঠিন হবে এবং আপনি হয়তো মনে করতে পারেন , আমার এই লেখাকে আপনি পাত্তা দেন না কিন্তু সময় নিয়ে ধৈর্য্য ধরে পড়ার জন্য ধন্যবাদ

পোস্টটির সাথে সম্পর্কিত এবং সম্পর্কিত নয় এমন কয়েকজনকে ট্যাগ করলাম। কেউ চাইলে নিজেকে আন ট্যাগ করে নিতে পারেন।

Search User by Display Name in WordPress Sitewide

In wordpress in backend or if you use wordpress user query ‘WP_User_Query’ by default it will not search by display_name even if you add display_name in “search_columns” field of WP_User_Query
So, this can be achieved by this small filter https://gist.github.com/manchumahara/9910185 (after add this code now if you search in your wordpress admin panel for user with their display name it will work)

ref: https://codex.wordpress.org/Class_Reference/WP_User_Query