নতুন ব্লগ সেটআপ ফর্মটিতে কাস্টম ব্লগ বিকল্পগুলি কীভাবে যুক্ত করবেন?


17

একটি সহজ পর্যাপ্ত প্রয়োজনের মতো মনে হচ্ছে তবে আমি লড়াই করছি:

  1. আমি "নতুন সাইট যুক্ত করুন" এ একটি বিকল্প ক্ষেত্র যুক্ত করতে চাই
    একটি সাধারণ পাঠ্য বিকল্প জরিমানা। আমি এটা কিভাবে করবো?

  2. সাইটটি তৈরি হওয়ার পরে আমার এই কাস্টম ব্লগ বিকল্পটি সংরক্ষণ করতে হবে।

    আমি জানি যে আমি 'wpmu_new_blog' হুক ব্যবহার করতে পারি, যা $metaসরবরাহকৃত বিকল্পগুলি দিয়ে ভেরিয়েবলটি পাস করে , তবে আমি ভাবছি যে এই ধরণের সমস্ত পদক্ষেপটি যদি এক ধাপে করা যায় তবে আমাকে অন্য ডিবি কোয়েরি করতে হবে না, বা আরও খারাপ হতে পারে , পুরো সাইট তৈরি করার প্রক্রিয়াটি ওভাররাইড / প্রতিস্থাপন করবেন?

মন্তব্য:

আমি মাল্টিসাইট সেটআপ সহ ডাব্লুপি ৩.৩.১ ব্যবহার করছি। আমি একটি প্লাগইন লিখছি যা নির্দিষ্ট কাস্টম ক্ষেত্রের মানটির সাথে মেলে এমন সমস্ত সাইটকে তালিকাবদ্ধ করে (আসুন এটি "টাইপ" বলুন)।

এছাড়াও, আমি একজন অভিজ্ঞ পিএইচপি বিকাশকারী তবে আমি এখনও ওয়ার্ডপ্রেস হ্যাকিংয়ের তুলনায় তুলনামূলকভাবে নতুন, সুতরাং অনুগ্রহ করে ধরে নিন যে আমি এখনও বিভিন্ন ডাব্লুপি কার্যকারিতা এবং হুকগুলির সাথে ঘনিষ্ঠভাবে পরিচিত নই।

উত্তর:


9

দুটি উত্তর (*) যোগ দিয়ে, আমি কোনও নতুন সাইট (সামনের এবং পিছনের দিকের) নিবন্ধভুক্ত করার সময় একটি কাস্টম মেটা বিকল্প যুক্ত করার জন্য একটি প্লাগইন করেছি এবং সাইটগুলির স্ক্রিনের একটি কলামে এর মান প্রদর্শন করব।

মাল্টিসাইট বিভাগ

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

(*) কোড রেফারেন্স

1 - ওয়ার্ডপ্রেস + মাল্টিসাইট: নেটওয়ার্ক অ্যাডমিনে নতুন সাইট ফর্ম যুক্ত করতে কাস্টম ব্লগ বিকল্পগুলি কীভাবে যুক্ত করবেন? , @ এডনিসং দ্বারা

2 - মাল্টিসাইট: নতুন ব্লগ সেটআপ ফর্মটিতে কাস্টম ব্লগ বিকল্পগুলি কীভাবে যুক্ত করবেন? , @ বিটুইলারের দ্বারা

add_action('wpmu_new_blog', 'add_new_blog_field');দুই উত্তর থেকে একীভূত হয়ে যায়।

আমি আমার মাল্টিসাইটে আইডি কলাম কোডটি ইতিমধ্যে ব্যবহার করেছিলাম এবং প্লাগইনে বিভাগ কলামটি যুক্ত করেছি।

[হালনাগাদ]

বিভাগ কলামটি বাছাইযোগ্য করার চেষ্টা করেছে, তবে এটি প্রায় অলসযোগ্য বলে মনে হচ্ছে ...

এই প্রশ্ন / উত্তর দেখুন: ফিল্টারগুলি 'অনুরোধ' এবং 'parse_query' সাইটগুলিতে গুলি চালাচ্ছে না বা লিঙ্ক-ম্যানেজার। Php

[আপডেট 2]

আমি প্লাগইনটি পুনরায় কাজ করেছি এবং এখন বিভাগগুলি বাছাইযোগ্য। প্লাগইনটির প্রথম সংস্করণটি এখন একটি গিস্ট (লিঙ্কটি শুরুতে আপডেট হয়েছে) এবং নতুন সংস্করণটি গিটহাবে থাকে।


+1 আরে এই দুর্দান্ত, ব্রাসোফিলো! আমি এটি চেষ্টা করার অপেক্ষায় রয়েছি :)
ব্রায়ান লেসি

8

মাল্টিসাইট সাইনআপ প্রক্রিয়া টুইঙ্ক করা সহজ জিনিস নয়। অন্যান্য প্রসেসের বিপরীতে এর সাথে খেলতে অনেক হুক রয়েছে তবে ভারী কাস্টমাইজেশনের জন্য এগুলি খুব ভালভাবে একসাথে আসে বলে মনে হয় না, তাই আমি আপনার হতাশাকে বুঝতে পারি।

যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি যা চান তা অর্জন করা এত জটিল নয়, যদিও এটি ওয়ার্ডপ্রেসের অনেক বেশি ডিফল্ট আচরণকে ছাড়াই এক-পদক্ষেপের সমাধান হতে পারে না, মূলত সাইনআপ (যেমন আপনার ব্যবহারকারীর কাস্টম তথ্য জমা দেবে) এবং অ্যাক্টিভেশন ( অর্থাত্ নতুন ব্লগটি আসলে কখন তৈরি হবে) আলাদাভাবে ঘটে।

এখানে একটি খুব রুক্ষ কোড যা আপনার শুরু করতে হবে। আশা করি এটি আপনাকে সঠিক দিকে চালিত করবে:

// Add text field on blog signup form
add_action('signup_blogform', 'add_extra_field_on_blog_signup');
function add_extra_field_on_blog_signup() { ?>
    <label>An extra field</label>
    <input type="text" name="extra_field" value="" />
<?php
}

// Append the submitted value of our custom input into the meta array that is stored while the user doesn't activate
add_filter('add_signup_meta', 'append_extra_field_as_meta');
function append_extra_field_as_meta($meta) {
    if(isset($_REQUEST['extra_field'])) {
        $meta['extra_field'] = $_REQUEST['extra_field'];
    }
    return $meta;
}

// When the new site is finally created (user has followed the activation link provided via e-mail), add a row to the options table with the value he submitted during signup
add_action('wpmu_new_blog', 'process_extra_field_on_blog_signup', 10, 6);
function process_extra_field_on_blog_signup($blog_id, $user_id, $domain, $path, $site_id, $meta) {
    update_blog_option($blog_id, 'extra_field', $meta['extra_field']);
}

মনে রেখ:

  1. আপনি যদি প্লাগ-ইন এর মাধ্যমে ইনপুটটি ফিল্টার করতে চান তবে আমি জোরালোভাবে প্রদত্ত বিকল্পগুলি লক করতে একটি নির্বাচন ইনপুট ব্যবহার করার পরামর্শ দেব;
  2. যেহেতু কিছু ক্ষেত্রের প্রয়োজন হয় এবং নিবন্ধকরণের সময় বৈধতার মধ্য দিয়ে যায় (ন্যূনতম অক্ষর, সাইটের নামের জন্য অনুমোদিত না হওয়া অক্ষর, কালো তালিকাভুক্ত নাম ইত্যাদি), তাই প্রথমটিতে ইনপুটটির মান স্থাপনের সময় আমি আপনার অতিরিক্ত ক্ষেত্রটি $ _REQQUEST তে পরীক্ষা করার পরামর্শ দেব ফাংশন, যাতে ওয়ার্ডপ্রেসের 'ডিফল্ট ক্ষেত্রগুলির মান ঠিক করতে তিনি প্রেরণ করেছেন সে ক্ষেত্রে ব্যবহারকারী তার ইনপুটটি হারাবে না;
  3. আপনার প্লাগ-ইন সেরা অনুসারে আপনি সর্বশেষ ফাংশনটির ধারণাটি প্রতিস্থাপন করতে পারেন তবে ক্ষেত্রটির মান এখন সেই শেষ ফাংশনটির মধ্য থেকেই পাওয়া যাবে যা আপনাকে আপনার পথে সহায়তা করবে।

একটি চূড়ান্ত নোটে, আপনি যদি পরে সমস্ত বিদ্যমান ব্লগ থেকে সমস্ত 'এক্সট্রা_ফিল্ড' মানগুলি প্রক্রিয়া করতে চান তবে আমি দৃ strong়ভাবে একটি একক টেবিলে তথ্য সংরক্ষণের পরামর্শ দিচ্ছি; সম্ভবত শেষ ফাংশনটির update_site_optionপরিবর্তে ব্যবহার update_blog_optionকরুন, ব্লগ_আইডি হারাবেন, যা সেই ক্ষেত্রে প্রয়োজন হয় না।

যাইহোক, আসুন কীভাবে তা আমাদের জানা যাক এবং শুভকামনা!


দুর্দান্ত সহায়ক উত্তর, প্রচুর তথ্য আমি এখানে ব্যবহার করতে পারি :) আমি ব্রাসোফিলোর সেরা উত্তর দিচ্ছি কারণ আপনি ইতিমধ্যে অনুগ্রহ পেয়েছেন, এবং উভয়ই দুর্দান্ত উত্তর।
ব্রায়ান লেসি

এখানে দুর্দান্ত উত্তর, ধন্যবাদ। আমি আপডেট_ব্লগ_অপশন () চালাতে না দিলে আমার অতিরিক্ত ক্ষেত্রটি কেন সাইটের বিকল্পগুলিতে যুক্ত হবে এমন কোনও ধারণা? আমি প্রসেস_সেক্সট্রা_ফিল্ড_অন_ব্লগ_সাইনআপ () এবং প্রস্থান () এ থাকা মানগুলি প্রতিধ্বনিত করেছিলাম এবং এটি কাজ করে, অতিরিক্ত_ফিল করা বিকল্পগুলিতে যুক্ত হয়েছিল। তবে যখন আমি কেবল প্রস্থান ছাড়াই এটি চালিয়ে যেতে পারি () তখন এক্সট্রা_ফিল্ডটি wp_xx_options এ যোগ করা হয় না।
Thatryan

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

-1

আপনি যদি সাইট-new.php কোডটি দেখেন তবে আপনি ইতিমধ্যে নিজের উত্তরটি অর্জন করতে পারতেন - এবং এটি কোনও নয়!

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

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