ওয়ার্ডপ্রেস এসইও ইয়োস্ট দ্বারা: নন-অ্যাডমিনদের পোস্টে মেটা বক্সগুলি লুকান


9

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

উত্তর:


19

এটি Yoast SEO প্লাগইন সাইটে API ডক্সে বলা হয়নি IDএবং আমার কাছে Yoast এর একটি অনুলিপি ইনস্টল করার সময় নেই, তবে yoas-plugin-dir/admin/class-metabox.phpলাইন 144 অনুসারে , নিবন্ধিত মেটা_বক্সটি রয়েছে;

add_meta_box( 'wpseo_meta', ...etc ); ...

যা add_meta_boxesএকই ফাইলের 32 লাইনে হুকের উপরে আবদ্ধ হয়,

add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );

অবশ্যই আপনি পোস্ট সম্পাদনা পর্দায় নিজেই মেটা বাক্স থেকে আইডিটি পেতে পারেন ... যাইহোক।

আপনি নিম্নলিখিতটি করতে পারেন,

add_action('add_meta_boxes', 'yoast_is_toast', 99);
function yoast_is_toast(){
    //capability of 'manage_plugins' equals admin, therefore if NOT administrator
    //hide the meta box from all other roles on the following 'post_type' 
    //such as post, page, custom_post_type, etc
    if (!current_user_can('activate_plugins')) {
        remove_meta_box('wpseo_meta', 'post_type', 'normal');
    }
}

... যেখানে পোস্ট টাইপ হ'ল পোস্ট টাইপ আপনিও এই বিধিনিষেধটি প্রয়োগ করতে চান, যেমন postবা কাস্টম পোস্ট টাইপ এক বা একাধিক!

কৌতুক করা উচিত।

আপডেট: করা manage_pluginsউচিত ছিল activate_plugins- প্রশংসিত।


16
+1 এর জন্য yoast_is_toast()
কায়সার

@ আহমাদ এম প্রস্তাবিত সম্পাদনার জন্য ধন্যবাদ তবে $post_typeভার এবং অ্যাকশন আর্গুমেন্ট প্যারামিটারের প্রয়োজন নেই এবং নোটিশ / ত্রুটি ছুঁড়ে না। এছাড়াও যদি আপনি $post_typeভ্যার অন্তর্ভুক্ত করেন তবে অন্য যে কোনও ফাংশনটি আপনি করেননি তার মধ্যে পোস্টের ধরণটি সংজ্ঞায়িত করতে হবে, সুতরাং ব্যবহারকারী এটির এটি অন্যায়ভাবে কাজ করার জন্য চালাতে পারত! এক্ষেত্রে পোস্ট টাইপের নাম যেমন 'post'সরাসরি remove_meta_boxফাংশনে প্রবেশ করা পুরোপুরি গ্রহণযোগ্য । যাইহোক পরামর্শের জন্য ধন্যবাদ।
আদম

@ ইউজারবাউজার: স্পষ্টতার জন্য ধন্যবাদ, তবে $post_typeইতিমধ্যে সংজ্ঞায়িত এবং add_meta_boxesঅ্যাকশন হুক ফাংশনগুলি দ্বারা ব্যবহারের জন্য প্রস্তুত , দয়া করে এই ক্রিয়া হুকের অ্যাডাম ব্রাউন মজাদার দৃশ্য দেখুন । ব্যবহার $post_typeএই ক্ষেত্রে কোড স্বাধীন করতে হবে post_typeসম্পাদনা পর্দা, এটি মুছে ফেলা হবে, যার অর্থ wpseo_metaথেকে মেটা বক্স সব পোস্ট ধরনের এটিতে পাওয়া যায়, এবং কেস কিছুই ফিরে আসবে wpseo_metaপাওয়া যায় না।
আহমদ এম

@ আহমদম ধন্যবাদ সাথী। আমি ইতিমধ্যে সংজ্ঞায়িত ভেরটি সম্পর্কে সচেতন, তবে এটি হুক / ফাংশনে প্রবেশের প্রয়োজনীয়তা তৈরি করে না। এই ক্ষেত্রে ওপি postপোস্ট_ টাইপ থেকে মেটা বাক্সটি সরাতে চায় যার জন্য প্রাথমিক সমাধান দানাদার নিয়ন্ত্রণের অনুমতি দেবে। তবে আপনি যেখানে সমস্ত পোস্টের জন্য এটি সরাতে চান তার ক্ষেত্রে ইতিমধ্যে সংজ্ঞায়িত ভার ব্যবহার $post_typeকরা সন্তোষজনক। আমি যা করবো, তা হল আমার উত্তরটি সম্পাদনা করা আপনার $post_typeপরিস্থিতিতে অতিরিক্ত পরিবর্তনগুলি ব্যবহার করে এমন পরিস্থিতিতে যে কেউ এই সমস্ত নিবন্ধিত পোস্ট_ টাইপের ক্ষেত্রে প্রয়োগ করতে চাইতে পারে।
আদম

5

ইয়োস্টের দ্বারা ওয়ার্ডপ্রেস এসইও প্লাগইন ( এপিআই ডক্স ) অনুসারে এটি কোনও প্লাগইন বা থিম functions.phpফাইলে আটকানোর চেষ্টা করুন ।

if(function_exists('wpseo_use_page_analysis') && !current_user_can('administrator')){
    add_filter('wpseo_use_page_analysis', '__return_false');
}

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

initসঠিকভাবে কাজ করার জন্য আপনাকে এগুলি প্রয়োজন হতে পারে, যা এটি এভাবে করা যেতে পারে:

function wpse_init(){
    if(function_exists('wpseo_use_page_analysis') && !current_user_can('administrator')){
        add_filter('wpseo_use_page_analysis', '__return_false');
    }   
}
add_action('init', 'wpse_init');

4

আপনি মুছে ফেলা_মেটা_বক্স ফাংশনটি ব্যবহার করে এটি সরাতে পারেন ।

if ( ! current_user_can( 'edit_pages' ) ) {
    add_action( 'add_meta_boxes', 'my_remove_wp_seo_meta_box', 100000 );
}

function my_remove_wp_seo_meta_box() {
    remove_meta_box( 'wpseo_meta', 'post', 'normal' );
}

অ্যাড_অ্যাকশনে 100000 লক্ষ করুন, এটি নিশ্চিত করে যে ডাব্লুপিইও এসইও মেটাবক্সকে সংযুক্ত করার পরে এটি সম্পন্ন হয়েছে।


2

ব্যবহারকারীদের ভূমিকার উপর নির্ভর করে আইটেমগুলি আড়াল করতে আপনি প্রশাসনিক প্লাগইন ব্যবহার করতে পারেন। ক্লায়েন্টদের কাছ থেকে কিছু Yoast SEO জিনিসগুলি আড়াল করতে এবং পিছনের প্রান্তটি সহজ করার জন্য এটি নিজেই ব্যবহার করেছেন।

http://wordpress.org/extend/plugins/adminimize/

আপনি যে আইটেমগুলি আড়াল করতে চান তার জন্য সিএসএস নির্বাচনকারীদের যুক্ত করে ব্যবহার করার জন্য খুব সোজা এগিয়ে। এসইও পৃষ্ঠা বিশ্লেষণ ট্যাবগুলি লুকানোর জন্য এটি ব্যবহার করেছেন (# লিঙ্কডেক্স)


0

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.