উইজেটের বিকল্পগুলি 'বাইরের' ব্যবহার করে


13

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

আমি যে বিকল্পগুলি পাস করতে চাই তা হ'ল ওয়েবসওয়ারসের জন্য প্রমাণীকরণ যা বর্তমানে ফলাফলের পৃষ্ঠায় কঠোরভাবে কোডড হয়েছে (টেমপ্লেট হিসাবে সম্পন্ন)। সুতরাং সেগুলি ওয়েবসাইট ব্যবহারকারী থেকে লুকানো উচিত।

উইজেট / প্লাগইন থেকে কোড:

 function widget($args, $instance){
  extract($args);
  $title = apply_filters('widget_title', empty($instance['title']) ? 'Choose a service' : $instance['title']);
  $lineOne = empty($instance['username']) ? '' : $instance['username'];
  $lineTwo = empty($instance['password']) ? '' : $instance['password'];

  # Before the widget

  echo $before_widget; // etc...

ফলাফল পৃষ্ঠা ...

$url = "http://www.nhs.uk/NHSCWS/Services/ServicesSearch.aspx?user=".[USERNAME]."&pwd=".[PASSWORD]."&q=".$_POST['PostCode']."&type=".$_POST['ServiceType']."";

এখনও কীভাবে ডাব্লুপি একসাথে ঝুলছে তা শিখছে, তাই এন 100 বি প্রশ্নের জন্য দুঃখিত।

উত্তর:


16

@ জোনাথনবাইর্ডের উত্তর সম্ভবত 'সেরা' - অবশ্যই আপনার get_optionযথাসম্ভব সম্ভব ব্যবহার করা উচিত , যেহেতু ওয়ার্ডপ্রেস সংস্করণগুলির মধ্যে বিকল্পের নামটি একই থাকবে তার কোন গ্যারান্টি নেই।

একইভাবে - @ জোনাথনবায়ার্ড একটি বিশ্বব্যাপী ভেরিয়েবল ব্যবহারের উপরও নির্ভর করে যা মুছে ফেলা / নাম পরিবর্তন করা যেতে পারে (যদিও এটি সম্ভবত খুব সম্ভাবনা) unlikely

দুর্ভাগ্যক্রমে এমন কোনও পাবলিক র‌্যাপার নেই যা আমরা নির্ভরযোগ্যভাবে ব্যবহার করতে পারি। get_settingsআপনার উইজেট শ্রেণীর পদ্ধতিটি নিকটতম class ধরা যাক আপনি এখন উইজেট শ্রেণি My_Widget_Class,

 $dummy = new My_Widget_Class();
 $settings = $dummy->get_settings();

$settingsতারপরে ফর্মের একটি অ্যারে array(instance number => settings)। সাধারণত আপনার উইজেটের মতো কোনও আইডি থাকবে my-widget-class-3- এবং এখানে 'উদাহরণ সংখ্যা' 3 এবং আরও

 $settings[3]

উইজেটের জন্য সেটিংস দেয় (অ্যারে হিসাবে) my-widget-class-3। আমি অনুভব করি এটি একটি আরও নির্ভরযোগ্য এবং ভবিষ্যতের প্রমাণ পদ্ধতি।


4

একদমই কোনও প্রশ্ন নয়।

আপনাকে মাইএসকিউএল (পিএইচপিএমইএডমিন বা অনুরূপ ব্যবহার করে) ডিপ করতে হবে এবং প্রথমে বিকল্পটির নাম পান। নিম্নলিখিত এসকিউএল উইজেট বিকল্পগুলি তালিকাবদ্ধ করবে:

SELECT *
FROM `wp_options`
WHERE `option_name`
REGEXP '^widget_'
LIMIT 0 , 30

তারপরে আপনার টেমপ্লেটে (বা কোনও প্রকারের পিএইচপি এক্সিকিউশন প্লাগইন সহ পোস্ট / পৃষ্ঠা) আপনি এটি get_option()পছন্দ করতে পারেন:

<?php echo get_option('your_widget_option_name'); ?>

এট ভয়েলা!


Thx তবে কিছুই নির্বাচন করুন ক্যোয়ারী থেকে ফিরে আসেনি।
জনিবিজল

উদ্ভট ব্যাপার. উইজেট সরবরাহ করে এমন প্লাগইনের নাম কী?
টম রাইট

4

সমস্ত উইজেট এবং তাদের বিকল্পগুলির মধ্যে সংরক্ষণ করা হয় global $wp_registered_widgets। কেবলমাত্র এই পরিবর্তনশীলটি লোড করুন এবং আপনি যে উইজেট বিকল্পগুলি সন্ধান করছেন তা সন্ধান করার জন্য সামগ্রীগুলি মুদ্রণ করুন।


3

আমি স্টিফেন হ্যারিস প্রস্তাবিত পদ্ধতি ব্যবহার করেছি।

$dummy = new My_Widget_Class();
$settings = $dummy->get_settings();
$settings = reset($settings);

রিসেট () অ্যারে থেকে প্রথম কী মান দেয়, যদি আপনি না জানেন তবে আপনার উইজেটের আইডি কী।

দ্রষ্টব্য: উইজেটের একাধিক অনুলিপি সক্রিয় থাকলে এটি সাহায্য করবে না। কারণ এটি কেবলমাত্র উইজেটের প্রথম অনুলিপিটির সেটিংস প্রদান করে।


0

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

একটি বিকল্প সেট করতে, কেবল এটি করুন:

<?php add_option("my_widget_option_name", 'option_value'); ?>

এরপরে আপনি ডাব্লুপি-র মধ্যে যে কোনও জায়গায় এইভাবে get_option কল করে পুনরুদ্ধার করতে পারেন:

<?php $option_val = get_option("my_widget_option_name"); ?>

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

ওকে ধন্যবাদ, একবার চেষ্টা করে দেখুন। আংশিক সময়ের চাপের কারণে আমি এই মুহুর্তে কাঁপছি।
জনিবিজল

আরও ব্যাখ্যা করতে, উইজেট 2 টি বিকল্প, পরিষেবা প্রয়োজনীয় এবং ডাক কোড পোস্ট করে। ফর্মটি নির্দিষ্ট পৃষ্ঠায় জমা দেয় (আমি জানি যে আমি বর্তমান পৃষ্ঠাটি ব্যবহার করতে পারি) যা আমি অনুসন্ধান-ফলাফল বলেছি। অনুসন্ধানের ফলাফলগুলি ওয়েব সার্ভিসকে কল করে url এ যা যা বিকল্পগুলি নিয়ে যায়। এক্সএমএল হিসাবে ফলাফলগুলি ফিরে আসবে যা একটি অ্যারেতে প্রবেশ করে এবং তারপরে ব্যবহারকারীর কাছে আউটপুট দেয়। এই সাইটটি একই ওয়েবসার্ভিস
জনিবিজল

... অভিপ্রায়টি ছিল ওয়েব সার্ভিসের জন্য ব্যবহারকারীর নাম / পিডাব্লুডির পরামিতিগুলি ব্যবহার করা যাতে অন্য সাইটগুলি একই উইজেট ব্যবহার করতে পারে।
জনিবিজল

ঠিক আছে, তাই সাইটের মালিকদের তাদের নিজস্ব ব্যবহারকারীর নাম এবং পাসওয়ার্ড ইনপুট করতে হবে, সঠিক? একবার তারা এটি করার পরে, এটি অন্য সাইট থেকে এক্সএমএল টানতে এবং তারপরে এটি প্রদর্শন করতে তথ্য ব্যবহার করে। সেক্ষেত্রে আপনি get_option এবং add_option ব্যবহার করতে চান না। অ্যাপ্লিকেশন_ফিল্টার ফাংশন জিনিসগুলির ডিসপ্লে সাইডে কাজ করে - যেমন এটি আপনার ডাটাবেসে ডেটা পরিবর্তন করে না, এটি শেষ ব্যবহারকারীর কাছে প্রদর্শিত হওয়ার আগে এটি পরিবর্তন করে। দেখে মনে হচ্ছে আপনি উইজেটের ফর্ম ইনপুটটি নিতে চান এবং এড_পশন দিয়ে এটি সংরক্ষণ করতে চান। এই সাইটে একটি দুর্দান্ত টিউটোরিয়াল রয়েছে: valums.com/create-wordpress-widget
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.