কীভাবে এই প্রোফাইলগুলি 'প্রোফাইল' বিভাগ থেকে সরিয়ে ফেলবেন?


16

ব্যবহারকারীর ভূমিকা অনুযায়ী আমাকে 'প্রোফাইল' পৃষ্ঠা থেকে কিছু প্রোফাইল ক্ষেত্র সরিয়ে ফেলতে হবে। কালার পিকারটি সরানোর জন্য আমি ব্যবহার করেছি remove_action("admin_color_scheme_picker", "admin_color_scheme_picker")। আমি এই ক্ষেত্রগুলি সরাতে চাই:

  1. ডাকনাম
  2. নাম প্রকাশ্যে হিসাবে প্রকাশ করুন
  3. এআইএম, ইয়াহু, গুগল টক এবং নিজের ক্ষেত্রগুলি
  4. 2 টি চেকবাক্সের সাথে 'অ্যাডমিন বার দেখান' বিভাগটি

আমাকে এমন কোনও ক্রিয়া / ফিল্টার রয়েছে যা আমাকে এটি করার অনুমতি দেয় তা দেখতে আমি 'ইউজার-এডিট.এফপি' ফাইলটি দিয়ে গিয়েছিলাম তবে মনে হয় এটি সেখানে নেই। কেউ আমাকে কীভাবে বলতে পারেন? কোন সাহায্য প্রশংসা করা হবে। ধন্যবাদ

সম্পাদনা: উত্তরের জন্য @ হেলেন হাজারী ধন্যবাদ যদিও আমি ইতিমধ্যে এটি ইতিমধ্যে এটি করেছি।

<?php
add_action('admin_footer-profile.php', 'remove_profile_fields');
function remove_profile_fields()
{
    if(current_user_can('custom_role'))
    { ?>
        <script type="text/javascript">
            jQuery("h3:contains('Personal Options')").next('.form-table').remove();
            jQuery("h3:contains('Personal Options')").remove();
            jQuery("h3:contains('About Yourself')").next('.form-table').remove();
            jQuery("h3:contains('About Yourself')").remove();
        </script>
<?php }
}
?>

আমি জানি এটি কিছুটা দীর্ঘ, তবে এটি কার্যকর! আমি মনে করি আমি @ হেলেন হাজারী উত্তরটি দিয়ে যাব।


এই কোথায় যেতে হবে? থিমের functions.php?
ফ্যাবিয়ান

হ্যাঁ. এটি functions.phpবা একটি প্লাগইন ফাইল যেতে পারে । যতক্ষণ হুকস ঠিক থাকে ততক্ষণ এটি যে কোনও জায়গা থেকে কাজ করবে।
রুটউইক গাঙ্গুরদে

ঠিক আছে, তবে আমি যদি এটি ফাংশন.এফপি রাখি, তবে আমি কীভাবে জাভাস্ক্রিপ্টটি ফিরিয়ে দেব? ফিরে বা প্রতিধ্বনির সাথে?
ফ্যাবিয়ান

দেখে মনে হচ্ছে যে ওয়ার্ডপ্রেস v4.4.1 থেকে, ডাকনাম একটি প্রয়োজনীয় ক্ষেত্র হয়ে গেছে এবং ত্রুটি দেয় : দয়া করে কোনও লুকানো নেই তবে এই লুকানো
থাকলেও জনসাধারণকে

উত্তর:


15

যোগাযোগের পদ্ধতিগুলির জন্য ফিল্টার user_contactmethods:

function update_contact_methods( $contactmethods ) {

    unset( $contactmethods['aim'] );
    unset( $contactmethods['jabber'] );
    unset( $contactmethods['yim'] );

    return $contactmethods;

}
add_filter( 'user_contactmethods', 'update_contact_methods' );

ধন্যবাদ ... এই পেয়েছি! 'অ্যাডমিন বার দেখান' এবং 'নিজের সম্পর্কে' বিভাগগুলির জন্য কিছু?
রটউইক গাঙ্গুরদে

আপনি যদি কোনও সমাধান পান তবে দয়া করে এটি আপডেট করুন ... যদিও আমি আপনার উত্তরটি গ্রহণ করছি। ধন্যবাদ!
রটউইক গঙ্গুর্দে

+1 কারণ যতদূর আমি পিএইচপি এর মাধ্যমে ক্ষেত্রগুলি অপসারণের কথা মনে করতে পারি ওয়ার্ডপ্রেসকে ইউজারমেটা টেবিলে ফাঁকা এন্ট্রি তৈরি করা থেকে বিরত করে।
আশফাম

9

যদিও user_contactmethodsব্যবহারকারী প্রোফাইল পর্দার জন্য ফিল্টার কয়েকটির মধ্যে একটি, অন্য ক্ষেত্রগুলি ওয়ার্ডপ্রেসে প্রয়োজনীয় না হওয়ার কারণে আপনি jQuery ব্যবহার করতে পারেন .hide()এবং .remove()তথ্য সংরক্ষণের ক্ষেত্রে জটিলতা ছাড়াই আপনি যা চান না সেগুলি থেকে কার্যকরভাবে মুক্তি পেতে পারেন information । অবশ্যই, জেএস ছাড়া কোনও ব্যক্তি তাদের এখনও দেখতে পাবে, তবে এটি একটি ছোট সংখ্যালঘু এবং আমি অনুমান করছি যে সেখানে পরিবর্তন করা তথ্যগুলি আসলে কিছুতেই প্রভাব ফেলবে না।

পুরো ব্যক্তিগত বিকল্পগুলির টুকরো অপসারণের একটি উদাহরণ (অ্যাডমিন বার এবং রঙের স্কিম দেখান)। আমি জানি আপনি যা খুঁজছেন ঠিক তা নয়, কেবল আমার হাতে থাকা একটি দ্রুত উদাহরণ দিতে চেয়েছিলাম:

// remove personal options block
if( is_admin() ){
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
    add_action( 'personal_options', 'prefix_hide_personal_options' );
}

function prefix_hide_personal_options() {
  ?>
    <script type="text/javascript">
        jQuery( document ).ready(function( $ ){
            $( '#your-profile .form-table:first, #your-profile h3:first' ).remove();
        } );
    </script>
  <?php
}

এছাড়াও, অ্যাডমিন বার প্রদর্শন সংক্রান্ত বিকল্প সম্পর্কে একটি নোট: ৩.৩-এ অ্যাডমিন বারটি শিরোনামে পরিণত হচ্ছে এবং সুতরাং এটি চালু বা বন্ধ করা যায় না, তাই এটি উদ্বিগ্ন হওয়ার মতো নয়।

আমি আরও সঠিক এবং সম্পূর্ণ হতে কোড উদাহরণ আপডেট করেছি। সেখানে কিছু অবশিষ্ট ছিল।


ধন্যবাদ! এটি একটি দুর্দান্ত সমাধান! আমি যা করেছি তেমনই কিছু ছিল তবে আমি আলাদা স্ক্রিন হুক ব্যবহার করেছি যাতে আমার স্ক্রিপ্টটি কেবল চালিত হয় profile.php। আমার সিস্টেমে সংজ্ঞায়িত একটি নির্দিষ্ট কাস্টম ভূমিকার জন্য আমারও এটি করা দরকার। উত্তর সহ আমার প্রশ্ন আপডেট করা।
রটউইক গাঙ্গুরদে

1
যদি আপনি jQuery এ নিম্নলিখিতটি যুক্ত করেন তবে এটি থেকে ডাক নাম এবং 'প্রদর্শন নামটি' লুকিয়ে রাখবে:$("#nickname,#display_name").parent().parent().remove();
আইসিসি 9 7

আপনি edit_user_profile হুকও ব্যবহার করতে পারেন। এবং তাত্ক্ষণিকভাবে কোড চালানোর জন্য jQuery (নথি)। প্রস্তুত পদ্ধতি ব্যবহার করবেন না। এটি পছন্দ করুন
গিরালদী

ডাব্লুপি v.4.4.1
আইসিসি

2

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

add_action( 'admin_head', 'remove_default_profile_fields' );

function remove_default_profile_fields() {

    global $pagenow;

    if( 'profile.php' != $pagenow) return;

    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    // <tr> selectors, each containing a field
    $tr = array(
        "tr.user-rich-editing-wrap",
        "tr.user-comment-shortcuts-wrap",
        "tr.user-first-name-wrap",
        "tr.user-last-name-wrap",
        "tr.user-admin-bar-front-wrap",
        "tr.user-profile-picture",
        "tr.user-user-login-wrap",
        "tr.user-display-name-wrap",
        "h2" // Personally I decided to remove all H2 tags too.
    );

    $selectors = implode(", ", $tr);

    // Hide the fields with css, so even if javascript is disabled they wont show up. 
    echo "<style>{$selectors}{display:none;}</style>"; ?>

    <script type="text/javascript">
        jQuery( document ).ready(function( $ ){
           // Remove selected <tr>'s
           $( '<?= $selectors; ?>' ).remove();
           // Remove any empty table that may have been left over
           $(".form-table:not(:has(tr))").remove();
        });
    </script>

  <?php
}

1

থেকে ওয়ার্ডপ্রেস সহায়তা ফোরাম আপনি পিএইচপি ব্যবহার অপসারণ করতে পারেন। এটি নিজের সম্পর্কে বিভাগ সরিয়ে দেয়:

if (! function_exists('remove_plain_bio') ){
    function remove_plain_bio($buffer) {
        $titles = array('#<h3>About Yourself</h3>#','#<h3>About the user</h3>#');
        $buffer=preg_replace($titles,'<h3>Password</h3>',$buffer,1);
        $biotable='#<h3>Password</h3>.+?<table.+?/tr>#s';
        $buffer=preg_replace($biotable,'<h3>Password</h3> <table class="form-table">',$buffer,1);
        return $buffer;
    }

    function profile_admin_buffer_start() { ob_start("remove_plain_bio"); }

    function profile_admin_buffer_end() { ob_end_flush(); }
}
add_action('admin_head', 'profile_admin_buffer_start');
add_action('admin_footer', 'profile_admin_buffer_end');

কোডটি 'নিজের সম্পর্কে' শিরোনামকে 'পাসওয়ার্ড' দিয়ে প্রতিস্থাপন করে এবং তারপরে যে সারণীটি খুঁজে পায় তার মধ্যে যা কিছু খুঁজে বের করে (যা পাসওয়ার্ড টেবিল)।

এছাড়াও আপনি যদি প্রসারিত করতে চান তবে প্লাগইন ডাব্লুপি হাইড ড্যাশবোর্ড একই রকম jQuery প্রতিস্থাপন করে।


ভবিষ্যতের রেফারেন্সের জন্য, আপনি সম্ভবত ব্যবহার করতে চান admin_head-profile.phpএবং admin_footer-profile.phpতার পরিবর্তে

1

সতর্ক হোন!!

1) ক্ষেত্রটি সরিয়ে ফেলা ভাল নাও হতে পারে , আপডেট হিসাবে, আপনি যদি ওয়ার্ডপ্রেস আপডেট হুকের জন্য প্রয়োজনীয় ক্ষেত্রগুলি প্রেরণ না করেন, তবে এটি সেই ক্ষেত্রগুলিতে খালি মান নির্ধারণ করতে পারে! (উদাহরণস্বরূপ, ফর্ম জমা, সেখানে অর্থাত বিদ্যমান উচিত <input name="username".../>)
আমি মনে করি, এটি চাক্ষুষরূপে শুধুমাত্র ব্যবহারকারীদের কাছ থেকে লুকানোর জন্য ভালো, jQuery সঙ্গে .hide();সঙ্গে না .remove();
গোপন করুন "উদাহরণস্বরূপ কোড প্রদর্শন নাম " এবং " NICKNAME জন " ক্ষেত্র:

jQuery(document).ready(function( $ ){
    $("#nickname,#display_name").parent().parent().hide();
});

২) অ্যাডমিন বারটি আড়াল করার জন্য ওয়ার্ডপ্রেস মেনুতে (সেটিংসে) একটি বিশেষ বিকল্প রয়েছে । যেমন কাস্টম কোড, জন্য

add_action('after_setup_theme', 'remove_admin_bar');

function remove_admin_bar()
{
  if (!current_user_can('administrator') && !is_admin()) 
  {
    show_admin_bar(false);
  }
}


-4

এগুলি অক্ষম করার জন্য কোনও ফিল্টার নেই। উত্সটি দেখুন ( /wp-admin/user-edit.php) যখন আপনাকে এই জাতীয় জিনিসগুলি করার দরকার হয়। আপনি এগুলিকে জেএস দিয়ে লুকিয়ে রাখতে পারেন তবে সেগুলি এখনও দৃশ্যমান করা যায় এবং মানগুলি পোস্টে আপডেট হয়।

কেবলমাত্র কার্যকর বিকল্পটি হ'ল কোরটি হ্যাক করা hack কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনি আপডেটটি পরিচালনা করেছেন এবং এই ক্ষেত্রগুলিকে POST এ উপেক্ষা করবেন।


হ্যাঁ, আমি ইতিমধ্যে সেই ফাইলটি চেক করেছি! জেএস সমাধানটি খুব নিরাপদ বলে মনে হচ্ছে না। আমি দেখব আমি কি করতে পারি! ধন্যবাদ!
রটউইক গাঙ্গুরদে

3
যদি আপনি কেবলমাত্র সমাধানটি ভাবতে পারেন তবে তা হ্যাক হ'ল, তবে সম্ভবত আপনার সেই নির্দিষ্ট প্রশ্নের উত্তর দেওয়া উচিত নয়। আপনাকে ইতিমধ্যে উল্লিখিত ফাইলটি দেখার জন্য প্রশ্নকারীকে পরামর্শ দেওয়ার দরকার নেই, এবং কোনও ফিল্টার নেই বলে উল্লেখ করে আপনিও সঠিক নন - অবশ্যই আপনি প্রথমে প্রশ্ন এবং পূর্ববর্তী উত্তরটি পড়েছেন?
হেলেন হাজারী

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