הסניפט הבא יאפשר לכם לבדוק האם בפוסט מסויים יש ״תוכן מוטמע״ (Embedded Content). עובד בתוך הלולאה תוך שימוש במזהה הפוסט (Post ID). לחילופין ניתן להעביר ID כלשהו ולבדוק אם בפוסט זה קיים אותו תוכן מוטמע.
<?php
function has_embed( $post_id = false ) {
if( !$post_id ) $post_id = get_the_ID();
else $post_id = absint( $post_id );
if( !$post_id ) return false;
$post_meta = get_post_custom_keys( $post_id );
$post_meta = array_map( 'trim' , $post_meta );
foreach( $post_meta as $meta ) {
if( '_oembed' != substr( $meta , 0 , 7 ) )
continue;
return true;
}
return false;
}
והשימוש בו מתבצע כך:
if( has_embed() ) {
// do whatever
}
נכתב ע״י רועי יוסף•פורסם ב- 11 ליוני, 2021
הסניפט הבא מאפשר לכם להכניס תוכן אוטומטי לכל פוסט טייפ (לכל סוג תוכן) חדש שתיצרו. הוסיפו לקובץ functions.php
:
<?php
////////////////////////////////////////////////////////////////////////////////////
// This auto populates post types and posts.
///////////////////////////////////////////////////////////////////////////////////
function my_editor_content( $content ) {
global $post_type;
switch( $post_type ) {
case 'your_post_type_here': //auto populate
$content = 'The content you want to pre-populate the post type with.';
break;
}
return $content;
}
add_filter( 'default_content', 'my_editor_content' );
נכתב ע״י רועי יוסף•פורסם ב- 11 ליוני, 2021
הנה כיצד להוסיף CSS ל ACF בממשק הניהול. במקרה זה, גרמנו ל Repeater Fields להיות בעלי הפרדה ברורה יותר. בוצעו גם מספר שינויים נוספים בכדי שההבנה של הממשק תהיה נוחה יותר:
שימו לב שאתם מסירים מהקוד את תגית ה PHP הפותחת…
<?php
function my_acf_admin_head() { ?>
<style type="text/css">
.acf-flexible-content .layout .acf-fc-layout-handle {
background-color: #202428;
color: #eee;
}
.acf-repeater.-row > table > tbody > tr > td,
.acf-repeater.-block > table > tbody > tr > td {
border-top: 2px solid #202428;
}
.acf-repeater .acf-row-handle {
vertical-align: top !important;
padding-top: 16px;
}
.acf-repeater .acf-row-handle span {
font-size: 20px;
font-weight: bold;
color: #202428;
}
.imageUpload img {
width: 75px;
}
.acf-repeater .acf-row-handle .acf-icon.-minus {
top: 30px;
}
</style>
<?php
}
add_action( 'acf/input/admin_head', 'my_acf_admin_head' );
ובמקרה של ה Repeater זו התוצאה.. שמים לב לקו המפריד?
נכתב ע״י רועי יוסף•עודכן ב- 16 לינואר, 2022
בכדי לשנות את העיצוב של האימיילים שווקומרס שולחת, ניתן להוסיף Inline CSS על ידי שימוש בהוק woocommerce_email_header
. ניתן לעשות זאת בצורה הבאה, הוסיפו את הקוד הבא לקובץ functions.php
:
<?php
/**
* WooCommerce
* Add inline CSS to emails sent out
*/
function sv_add_css_to_woo_email() {
echo '<style type="text/css">
h1 {
text-align: center !important;
color: #DDD;
}
</style></pre>';
}
add_action( 'woocommerce_email_header', 'sv_add_css_to_woo_email' );
נכתב ע״י רועי יוסף•עודכן ב- 24 למרץ, 2021
בכדי להחליף את הקו המפריד (delimiter) בפירורי הלחם (breadcrumbs) של ווקומרס השתמשו בפילטר הבא:
function in_woocommerce_breadcrumb_defaults($args){
$args['delimiter'] = ' | ';
return $args;
}
add_filter('woocommerce_breadcrumb_defaults','in_woocommerce_breadcrumb_defaults');
במקרה זה החלפנו את הסלאש בקו ורטיקלי. הנה כל הערכים שניתן לשנות באמצעות הפילטר המדובר:
array(
'delimiter' => ' / ',
'wrap_before' => '<nav class="woocommerce-breadcrumb">',
'wrap_after' => '</nav>',
'before' => '',
'after' => '',
'home' => _x( 'Home', 'breadcrumb', 'woocommerce' ),
)
נכתב ע״י רועי יוסף•פורסם ב- 18 למרץ, 2021
וורדפרס מספקת את האפשרות ליצור תקציר (excerpt) לפוסטים על ידי הכנסת טקסט בתיבת בתקציר בעמוד עריכת הפוסט. אך תקצירים אלו אינם מופיעים עבור עמודים (pages post type) ואין אפשרות להוסיף או להפעיל אפשרות זו דרך ממשק הניהול של וורדפרס.
אם אתם מעוניינים לאפשר תיבת תקציר זו גם עבור עמודים, עליכם להוסיף את הקוד הבא לקובץ functions.php
של התבנית שלכם:
<?php
// START COPY FROM HERE
function add_excerpt_pages() {
add_post_type_support('page', 'excerpt');
}
add_action('init', 'add_excerpt_pages');
לאחר שהוספתם את הקוד המצורף, ערכו עמוד מסויים ולחצו על "אפשרויות תצוגה״ בחלקו העליון השמאלי של המסך.
כיצד לאפשר תקציר (excerpt) לעמודים בוורדפרס
סמנו את תיבת התקציר ובזה סיימתם. כעת תגלו כי נוספה תיבת תקציר עבור כל העמודים באתר…
נכתב ע״י רועי יוסף•פורסם ב- 17 למרץ, 2021
השתמשו בקוד הבא בכדי לשנות את מספר המוצרים שווקומרס מציגה בכל עמוד. בכדי שזה יעבוד עליכם לוודא כי האפשרות ״הצג מוצרים״ היא האפשרות הנבחרת בהתאמה אישית.
והנה הקוד אותו יש להוסיף לקובץ functions.php
של התבנית שלכם:
/**
* Change number of products that are displayed per page (shop page)
*/
add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 20 );
function new_loop_shop_per_page( $cols ) {
// $cols contains the current number of products per page based on the value stored on Options –> Reading
// Return the number of products you wanna show per page.
$cols = 9;
return $cols;
}
נכתב ע״י רועי יוסף•פורסם ב- 4 למרץ, 2021
בכדי לבטל באופן מוחלט את אפשרות החיפוש בוורדפרס הוסיפו את הקוד הבא לקובץ functions.php
של התבנית שלכם:
<?php function sv_filter_query($query, $error = true) {
if (is_search()) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ($error == true)
$query->is_404 = true;
}
}
add_action('parse_query', 'sv_filter_query');
add_filter('get_search_form', create_function('$a', "return null;"));
function remove_search_widget() {
unregister_widget('WP_Widget_Search');
}
add_action('widgets_init', 'remove_search_widget');
נכתב ע״י רועי יוסף•פורסם ב- 26 לפברואר, 2021
האם תהיתם כיצד ניתן להגביל את תוצאות החיפוש לסוג תוכן ספציפי (Specific Custom Post Type)? זה מאד פשוט. כבר ראינו כיצד לבטל לגמרי את אפשרות החיפוש בוורדפרס על ידי מודיפיקציה לקובץ functions.php
. כעת נעשה פעולה דומה בכדי לפלטר את תוצאות החיפוש שלנו.
גוש לקובץ functions.php
והוסיפו את הקוד הבא:
function sv_search_filter($query) {
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('post','page'));
}
return $query;
}
add_filter('pre_get_posts','sv_search_filter');
שימו לב לשורה הבאה:
$query->set('post_type',array('post','page'));
אתם יכולים לפלטר את תוצאות החיפוש על ידי שינוי הערכים במערך המדובר. כעת תוצאות החיפוש יציגו תוצאות אך ורק של עמודים ופוסטים, אך אתם יכולים לשנות מערך זה כך שיציג איזה סוג תוכן שתרצו.
נכתב ע״י רועי יוסף•פורסם ב- 26 לפברואר, 2021
כברירת מחדל, ווקומרס תציג את כל אפשרויות המשלוח בעמוד עגלת הקניות ובעמוד התשלום. אם תרצו להציג רק את אפשרות המשלוח חינם בעמודים אלו הוסיפו את הקוד הבא לקובץ functions.php
:
/**
* Hide shipping rates when free shipping is available.
* Updated to support WooCommerce 2.6 Shipping Zones.
*
* @param array $rates Array of rates found for the package.
* @return array
* @link https://docs.woocommerce.com/document/hide-other-shipping-methods-when-free-shipping-is-available/
*/
function prefix_hide_shipping_when_free_is_available( $rates ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'prefix_hide_shipping_when_free_is_available', 100 );
נכתב ע״י רועי יוסף•פורסם ב- 24 לפברואר, 2021