Loading...

תוסף וורדפרס וידג’טים מותנים

התוסף מוסיף לכל וידג’ט שדה נוסף בשם “וידג’טים מותנים” המאפשר לשלוט על העמודים בהם יוצג הוידג’ט. השדה מקבל תנאים מותנים של וורדפרס, או קוד PHP כללי.

שים לב ההיגיון יישומון שאתה מציג הוא EVAL’d ישירות. לכל מי שיש לו גישה לעריכת מראה של ווידג’ט תהיה הזכות להוסיף כל קוד, כולל פונקציות זדוניות ואולי הרסניות. יש מסנן אופציונלי ‘widget_logic_eval_override’ שבו ניתן להשתמש כדי לעקוף את EVAL עם הקוד שלך, אם יש צורך. (ראה הערות אחרות ).

קיימת גם אפשרות להוסיף פילטר ‘widget_content’ — דבר המאפשר לשנות את -HTML של הוידג’ט ללא עריכת תוספים או קבצי ליבה של וורדפרס.

תרומות

אם אתה אוהב ולהשתמש יישומון יישומון אתה יכול לשקול תרומה קטנה לחקר הסרטן בבריטניה. יש לי קישור תרומה JustGiving.com . נכון לפברואר 2017 גייסנו 1,048.50 UKP.

כתיבת קוד להתניות

הטקסט בשדה ‘יישומון יישומון’ יכול להיות קוד PHP מלא צריך לחזור ‘נכון’ כאשר אתה צריך את יישומון להופיע. אם אין “חזרה” בטקסט, מתווספת “חזרה” מרומזת לתחילתה ו”;נוסף בסוף. (זה רק כדי להפוך את ההצהרות יחיד כמו is_home () יותר נוח.)

הבסיס

לעשות שימוש טוב תגים מותנה של WP . ניתן לשנות ולשלב קוד באמצעות:

  • !(לא) כדי להפוך את ההיגיון, למשל !is_home()הוא TRUE כאשר זה לא דף הבית.
  • ||(OR) לשלב תנאים. X OR Yהוא TRUE כאשר X או נכון או Y נכון.
  • &&(AND) כדי להפוך את התנאים ספציפיים יותר . X AND Yהוא TRUE כאשר שניהם X נכון ו- Y נכון.

יש הרבה דוגמאות קוד נהדר על פורומים WP, ועל אתרי WP ברחבי הרשת. אבל קודקס WP הוא גם מלא דוגמאות טובות להסתגל, כגון מבחן אם ההודעה היא בקטגוריה צאצא .

דוגמאות

  • is_home() – רק את דף הבלוג הראשי
  • !is_page('about') – בכל מקום להוציא זה WP ספציפי ‘דף’
  • !is_user_logged_in() – מוצג כאשר משתמש אינו מחובר
  • is_category(array(5,9,10,11)) – דף קטגוריה של אחד ממזהי הקטגוריות הנתונות
  • is_single() && in_category('baked-goods') – פוסט אחד זה בקטגוריה עם הקליע הזה
  • current_user_can('level_10') מנהל יישומון בלבד – –
  • strpos($_SERVER['HTTP_REFERER'], "google.com")!=false – יישומון להצגת כאשר לוחצים דרך חיפוש Google
  • is_category() && in_array($cat, get_term_children( 5, 'category')) – דף קטגוריה זה צאצא של קטגוריה 5
  • global $post; return (in_array(77,get_post_ancestors($post))); – דף WP שהוא ילד של דף 77
  • global $post; return (is_page('home') || ($post->post_parent=="13")); – דף הבית או הדף שהוא בן 13

שים לב לתוספת ‘;’ שבסופו של דבר יש “חזרה” מפורשת.

מסנן ‘WIDGET_LOGIC_EVAL_OVERRIDE’

לפני קוד יישומון יישומון מוערכת עבור כל יישומון, את הטקסט של קוד היגיון יישומון מועבר דרך מסנן זה. אם המסנן מחזיר תוצאה BOOLEAN, במקום זה נעשה שימוש כדי לקבוע אם הווידג’ט גלוי. החזר TRUE לגלויה.

המסנן ‘WIDGET_CONTENT’

כאשר אפשרות זו פעילה (סמן את האפשרות של תיבת הסימון למרגלות דף הניהול של הווידג’ט), תוכל לשנות את הטקסט המוצג על-ידי רכיב widget מסוג AnyY מתוך קובץ functions.php של ערכת הנושא. התחבר למסנן בעזרת:

add_filter('widget_content', 'your_filter_function', [priority], 2);

כאשר [priority]הפרמטר עדיפות אופציונלית עבור הפונקציה add_filter . הפונקציה מסנן יכול לקחת פרמטר השני (אם אתה provde כי הפרמטר האחרון ‘2’) ככה:

function your_filter_function($content='', $widget_id='')

הפרמטר השני ($ widget_id) ניתן להשתמש כדי למקד יישומונים ספציפיים במידת הצורך.

פונקציה מסננת וורדפרס “לוקחת כקלט את הנתונים ללא שינוי, וחוזר שונות נתונים” כלומר מסנני widget_content מסופקים עם פלט HTML גלם על ידי יישומון, ו אז אתה חופשי לחזור למשהו אחר לגמרי:

פילטרים לדוגמא

add_filter('widget_content', 'basic_widget_content_filter');
function basic_widget_content_filter($content='')
{   return $content."<PRE>THIS APPEARS AFTER EVERY WIDGET</PRE>";
}

הייתי מוטיבציה לעשות את זה כדי לסנן את כל כותרות widget עם תוסף ttftitles מעולהכזה:

add_filter('widget_content', 'ttftext_widget_title');
function ttftext_widget_title($content='')
{   preg_match("/<h2[^>]*>([^<]+)/",$content, $matches);
    $heading=$matches[1];
    $insert_img=the_ttftext( $heading, false );
    $content=preg_replace("/(<h2[^>]*>)[^<]+/","$1$insert_img",$content,1);
    return $content;
}

אנשים לעתים קרובות לבקש דרך לתת יישומונים לסירוגין סגנונות. מסנן זה מוסיף widget_style_a / widget_style_b לטקסט class = “widget …” שמופיע בדרך כלל בהגדרה הראשית של widget:

add_filter('widget_content', 'make_alternating_widget_styles');
function make_alternating_widget_styles($content='')
{   global $wl_make_alt_ws;
    $wl_make_alt_ws=($wl_make_alt_ws=="style_a")?"style_b":"style_a";
    return preg_replace('/(class="widget )/', "$1 widget_${wl_make_alt_ws} ", $content);
}
להורדת התוסף
2018-05-13T09:00:35+00:00
יצירת קשר
close slider