הסניפט הבא יאפשר לכם להסיר תיבות Meta Box ספציפיות מהעמוד הראשי בלוח הבקרה (Dashboard) של וורדפרס. מדובר על ה Meta Boxes הדיפולטיביות המוצגות לנו בעמוד הראשי של ממשק הניהול.
בכדי לבטל או לשנות אילו תיבות יוצגו – הוסיפו את הסניפט לקובץ functions.php בתבנית שלכם ובחרו איזה תיבות להסיר:
function my_custom_dashboard_widgets()
{
global $wp_meta_boxes;
// Main column (left):
// Browser Update Required
unset($wp_meta_boxes['dashboard']['normal']['high']['dashboard_browser_nag']);
// PHP Update Required
unset($wp_meta_boxes['dashboard']['normal']['high']['dashboard_php_nag']);
// Right Now - Comments, Posts, Pages at a glance
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
// Right Now
unset($wp_meta_boxes['dashboard']['normal']['core']['network_dashboard_right_now']);
// Activity
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
// Site Health Status
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_site_health']);
// Side Column (right):
// WordPress Events and News
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
// Quick Draft, Your Recent Drafts
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
// Recent Comments
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
// Incoming Links
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
// Plugins - Popular, New and Recently updated WordPress Plugins
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
// Other WordPress News Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
// Recent Drafts List
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
}
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
אני מדבר על העמוד הבא אם זה לא היה ברור:
%22%20transform%3D%22translate(2.9%202.9)%20scale(5.71094)%22%20fill-opacity%3D%22.5%22%3E%3Cpath%20fill%3D%22%23141414%22%20d%3D%22M259.1-27.4l3.8%20216-44%20.8-3.8-216z%22%2F%3E%3Cellipse%20fill%3D%22%23fff%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(62.8%20-69%20126.6)%20scale(107.27896%20131.31111)%22%2F%3E%3Cellipse%20fill%3D%22%23b0b0b0%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(5.81048%20184.89241%20-13.62194%20.42809%20213%2045.5)%22%2F%3E%3Cellipse%20fill%3D%22%23fff%22%20cx%3D%2273%22%20cy%3D%22155%22%20rx%3D%22114%22%20ry%3D%22114%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
להתאמות בטוחות בממשק הניהול, תנו מבט במה זה תבנית בת וכיצד להשתמש בה.
אם אתם מעוניינים שעמודי ארכיון הקטגוריות בוורדפרס יציגו את כל הפוסטים הקיימים, ולא משנה לאיזה סוג תוכן אותם פוסטים שייכים, הוסיפו את הקוד הבא לקובץ functions.php:
function any_ptype_on_cat($request) {
if ( isset($request['category_name']) )
$request['post_type'] = 'any';
return $request;
}
add_filter('request', 'any_ptype_on_cat');
לעוד על סוגי תוכן מותאמים, תנו מבט בכיצד ליצור סוגי תוכן מותאמים.
בכדי להציג ב header באיזו תבנית קובץ עמוד מסויים משתמש הוסיפו את הקוד הבא לקובץ functions.php:
add_action('wp_head', 'show_template');
function show_template() {
global $template;
print_r($template);
}
לעוד על קבצי תבנית, תנו מבט בהיררכיה של תבניות עמוד בוורדפרס.
בכדי להסיר את הווידג׳טים המגיעים כברירת מחדל עם וורדפרס יש להוסיף את הקוד הבא לקובץ functions.php של התבנית שלכם:
// Unregister all default WordPress Widgets
function unregister_default_wp_widgets() {
unregister_widget('WP_Widget_Pages');
unregister_widget('WP_Widget_Calendar');
unregister_widget('WP_Widget_Archives');
unregister_widget('WP_Widget_Links');
unregister_widget('WP_Widget_Meta');
unregister_widget('WP_Widget_Search');
unregister_widget('WP_Widget_Text');
unregister_widget('WP_Widget_Categories');
unregister_widget('WP_Widget_Recent_Posts');
unregister_widget('WP_Widget_Recent_Comments');
unregister_widget('WP_Widget_RSS');
unregister_widget('WP_Widget_Tag_Cloud');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);
קוד זה משתמש בהוק widgets_init. למידע נוסף בהבנת הוקים בוורדפרס.
הקוד הבא יציג לכם בפוטר את מספר הקריאות (השאילתות) שהעמוד הנבדק ביצע למסד הנתונים (DB Queries), את הזמן שלקח לבצע שאילתות אלו ואת צריכת הזכרון של העמוד המדובר.
function sv_performance( $visible = false ) {
$stat = sprintf( '%d queries in %.3f seconds, using %.2fMB memory',
get_num_queries(),
timer_stop( 0, 3 ),
memory_get_peak_usage() / 1024 / 1024
);
echo $visible ? $stat : "<!-- {$stat} -->" ;
}
add_action( 'wp_footer', 'sv_performance', 20 );
התוצאה תופיע כהערה בפוטר. בדקו את קוד המקור של העמוד בכדי לראות אותה:
<!-- 33 queries in 1.532 seconds, using 48.75MB memory -->
לעוד על אופטימיזציית ביצועים, תנו מבט בשיפור מהירות הטעינה של אתרי וורדפרס.
מעוניינים לדעת כיצד להציג את התמונה הראשית (featured image) ליד כל פוסט ועמוד כשאתם צופים ברשימת הפוסטים או העמודים בממשק הניהול של וורדפרס?
אפשרי, אך מיותר להשתמש בתוסף עבור זה, פשוט הוסיפו את הקוד הבא לקובץ functions.php של התבנית שלכם.
function posts_columns($defaults){
$defaults['sv_post_thumbs'] = __('תמונה');
return $defaults;
}
function posts_custom_columns($column_name, $id){
if($column_name === 'sv_post_thumbs'){
the_post_thumbnail( 'thumbnail' );
}
}
add_filter('manage_posts_columns', 'posts_columns', 5);
add_action('manage_posts_custom_column', 'posts_custom_columns', 5, 2);
התוצאה תראה כנראה משהו בסגנון הבא:
%22%20transform%3D%22translate(1.8%201.8)%20scale(3.57422)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23c6c6c6%22%20cx%3D%2267%22%20cy%3D%2293%22%20rx%3D%2243%22%20ry%3D%22234%22%2F%3E%3Cellipse%20fill%3D%22%23a8a8a8%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(46.4%20-120.7%20145.3)%20scale(25.80892%2024.00646)%22%2F%3E%3Cellipse%20fill%3D%22%23fff%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-63.3357%2043.34615%20-66.35241%20-96.95155%20196.1%2094.6)%22%2F%3E%3Cellipse%20fill%3D%22%23fff%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(-22.6948%20-2.6348%2014.86208%20-128.01413%200%2082.4)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
קוד זה משתמש בהוקים להוספת עמודות בניהול. למידע נוסף בהבנת הוקים בוורדפרס.
הוסיפו את הקוד הבא לקובץ functions.php בכדי להוסיף שדות משלכם לעמוד פרופיל המשתמש בלוח הבקרה של וורדפרס.
// CUSTOM USER PROFILE FIELDS
function my_custom_userfields( $contactMethods ) {
// ADD CONTACT CUSTOM FIELDS
$contactMethods['contact_phone_office'] = 'Office Phone';
$contactMethods['contact_phone_mobile'] = 'Mobile Phone';
$contactMethods['contact_office_fax'] = 'Office Fax';
// ADD ADDRESS CUSTOM FIELDS
$contactMethods['address_line_1'] = 'Address Line 1';
$contactMethods['address_line_2'] = 'Address Line 2 (optional)';
$contactMethods['address_city'] = 'City';
$contactMethods['address_state'] = 'State';
$contactMethods['address_zipcode'] = 'Zipcode';
}
add_filter('user_contactmethods','my_custom_userfields',10,1);
בכדי להציג שדות אלו ניתן להשתמש באחת מהמתודות הבאות:
the_author_meta('facebook', $current_author->ID)
<?php $current_author = get_userdata(get_query_var('author')); ?>
<p><a href="<?php echo esc_url($current_author->contact_phone_office);?>" title="office_phone"> Office Phone</a></p>
לגישה מתקדמת יותר לשדות מותאמים, תנו מבט במדריך שימוש בסיסי ב Advanced Custom Fields.
הקוד הבא יוסיף תיבה חדשה בלוח הבקרה של וורדפרס (Dashboard). כמובן שבאפשרותכם לקבוע איזה תוכן יופיע בתיבה זו. יש להוסיף קוד זה לקובץ functions.php בתבנית שלכם:
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
wp_add_dashboard_widget('custom_help_widget', 'Help and Support', 'custom_dashboard_help');
}
function custom_dashboard_help() {
echo '<p>Lorum ipsum delor sit amet et nunc</p>';
}
וזה נראה כך:
%22%20transform%3D%22translate(2%202)%20scale(3.98828)%22%20fill-opacity%3D%22.5%22%3E%3Cellipse%20fill%3D%22%23d0d0d0%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22matrix(40.34734%20-12.14879%2027.26829%2090.56075%20111.6%20167.7)%22%2F%3E%3Cellipse%20fill%3D%22%23d1d1d1%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-42.4%20296.6%20-197.4)%20scale(66.62459%2027.53765)%22%2F%3E%3Cellipse%20fill%3D%22%23fff%22%20cx%3D%2294%22%20rx%3D%22137%22%20ry%3D%22137%22%2F%3E%3Cellipse%20fill%3D%22%23d1d1d1%22%20rx%3D%221%22%20ry%3D%221%22%20transform%3D%22rotate(-137.3%2069.8%2037.5)%20scale(32.19295%2038.92402)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
להתאמות בטוחות לתבנית, תנו מבט במה זה תבנית בת וכיצד להשתמש בה.
אני מעוניין לעכב את הפרסום ב RSS Feed של הפוסטים שאני כותב ב 10-15 דקות מכיוון ותמיד אני מגלה מספר טעויות לאחר הפרסום. סיטואציה נוספת היא מצב בו אני מעוניין שתוכן האתר יהיה אקסלוסיבי למשך זמן מסויים ולא יופיע באותו RSS פיד.
// Delay feed update
function publish_later_on_feed($where) {
global $wpdb;
if (is_feed()) {
// Timestamp in WordPress format
$now = gmdate('Y-m-d H:i:s');
// Value for wait; + device
$wait = '10'; // integer
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// Add SQL syntax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
לעוד על ניהול RSS, תנו מבט בביטול RSS Feeds בוורדפרס.
בכדי להוסיף סוגי תוכן מותאמים (Custom Post Types) ל RSS feed הראשי של האתר כברירת מחדל, עליכם להוסיף את הקוד הבא לקובץ functions.php של התבנית שלכם:
// ADD CUSTOM POST TYPES TO THE DEFAULT RSS FEED
function custom_feed_request( $vars ) {
if (isset($vars['feed']) && !isset($vars['post_type']))
$vars['post_type'] = array( 'post', 'site', 'plugin', 'theme', 'person' );
return $vars;
}
add_filter( 'request', 'custom_feed_request' );