it-swarm.asia

باستخدام خيارات القطعة "خارج" القطعة

أريد حفظ بعض المعلمات في خيارات عنصر واجهة المستخدم والتي يتم تمريرها بعد ذلك إلى صفحة أخرى. عنصر واجهة المستخدم عبارة عن نموذج يستدعي خدمة ويب.

الخيارات التي أرغب في تمريرها هي المصادقة على خدمة الويب والتي يتم ترميزها حاليًا في صفحة النتائج (تتم كقالب). لذلك يجب أن تكون مخفية عن مستخدم الموقع.

كود من القطعة/البرنامج المساعد:

 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']."";

لا يزال يتعلم كيف يتعطل WP معًا ، لذا آسف على السؤال n00b.

11
JohnnyBizzle

ربما تكون إجابة JonathonByrd @ الأفضل - بالتأكيد يجب عليك استخدام get_option إذا كان ذلك ممكنًا ، حيث لا يوجد ضمان بأن اسم الخيار سيبقى كما هو بين إصدارات WordPress.

وبالمثل - يعتمدJonathonByrd أيضًا على استخدام متغير عمومي قد تتم إزالته/إعادة تسميته (على الرغم من أنه من غير المحتمل جدًا).

لسوء الحظ ، لا توجد أغلفة عامة يمكننا استخدامها بشكل موثوق. الأقرب هو الأسلوب get_settings الخاص بفئة القطعة. لنفترض أنك فئة عنصر واجهة المستخدم هي 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. أشعر أن هذا هو وسيلة إثبات أكثر موثوقية ومستقبلية.

16
Stephen Harris

لا سؤال مستجد على الإطلاق.

ستحتاج إلى التراجع إلى MySQL (باستخدام PhpMyAdmin أو ما شابه) والحصول على اسم الخيار أولاً. سوف SQL التالية قائمة خيارات القطعة:

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

ثم في القالب الخاص بك (أو النشر/الصفحة مع نوع من البرنامج المساعد php exec) يمكنك get_option() مثل هذا:

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

إت فويلا!

4
Tom Wright

يتم تخزين جميع الحاجيات وخياراتها داخل global $wp_registered_widgets. ما عليك سوى تحميل هذا المتغير وطباعة المحتويات للعثور على خيارات عنصر واجهة المستخدم التي تبحث عنها.

4
Ecommerce Consultant

اعتدت ستيفن هاريس الطريقة المقترحة.

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

reset () يعطي القيمة الرئيسية الأولى من الصفيف ، إذا كنت لا تعرف ما هو معرف القطعة الخاصة بك.

ملاحظة: لا يساعد ذلك إذا كانت هناك نسخ متعددة من عنصر واجهة المستخدم نشطة. لأنه يعيد إعدادات النسخة الأولى من القطعة فقط.

3
Ulugov

ربما أخطأ في قراءة سؤالك ، ولكن يبدو أن ما تبحث عنه هو حفظ بعض الخيارات أو المعلومات من عنصر واجهة المستخدم (اسم المستخدم وكلمة المرور) في مكان ما في WordPress حيث يمكنك بعد ذلك إعادة الوصول إليها خارج رمز عنصر واجهة المستخدم . إذا كان هذا صحيحًا ، فستحتاج إلى إلقاء نظرة على add_option () وظيفة (وكذلك update_option () و delete_option () حسب الضرورة).

لتعيين خيار ، فقط قم بهذا:

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

يمكنك بعد ذلك استعادتها في أي مكان داخل WP عن طريق الاتصال بـ get_option مثل هذا:

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