در وردپرس، functions.php یا توابع در وردپرس، فایلی است که در قالبهای وردپرس گنجانده شده است. این فایل مانند یک افزونه برای سایت وردپرس عمل میکند و به طور خودکار با قالب فعلی شما فعال میشود. فایل functions.php از کد PHP برای افزودن ویژگیها یا تغییر ویژگیهای پیش فرض در سایت استفاده میکند. به عنوان مثال، یک پوسته وردپرس ممکن است کمی کد به فایل functions.php اضافه کند تا یک ناحیه ویجت جدید به پاورقی اضافه کند، یا یک پیام خوشامدگویی سفارشی به داشبورد وردپرس اضافه کند. در هر صورت میتوان با کمک این فایل امکانات بیپایانی را بدون نصب افزونه اضافه کرد.
توابع در وردپرس
فایل functions.php به طور خودکار زمانی که یک قالب وردپرس را نصب و فعال میکنید بارگیری میشود. ویرایش فایل functions.php با استفاده از کدهای سفارشی به شما امکان میدهد تا انواع پست، دسته بندیها، شورت کدها و موارد دیگر را برای بهبود وبسایت خود اضافه کنید.
جایگاه فایل توابع وردپرس در کجاست؟
محل فایل functions.php در پوشه قالب است. اگر میخواهید یک قطعه کد به سایت وردپرسی اضافه کنید، اضافه کردن آن به فایل functions.php یکی از گزینهها است. اما معمولاً این بهترین راه برای انجام آن نیست. وردپرس سعی میکند تا حد امکان طراحی و عملکرد را از هم جدا کند. به همین دلیل است که ما تمهایی داریم که طراحی را تعیین میکنند و پلاگینهایی که عملکردها را تعیین میکنند.
اگر بتوانید قالب وردپرس خود را بدون تغییر در نحوه عملکرد سایت خود تغییر دهید یا افزونههای خود را بدون تأثیر بر طراحی سایت تغییر دهید، بهتر است.
آموزش وردپرس به شما میگوید قطعه کد را به فایل functions.php تم خود اضافه کنید، اما این معمولا ایده خوبی برای هر شخصی نیست. اگر تصمیم دارید فایل functions.php خود را ویرایش کنید، لطفاً بسیار احتیاط کنید یا ترجیحا از یک فرد متخصص کمک بگیرید.
در اینجا ۳ دلیل وجود دارد احتیاطی برای ویرایش فایل functions.php وجود دارد:
- ویرایش توابع در وردپرس با بهروزرسانی تم از بین میرود.
- اگر قالب وردپرس خود را تغییر دهید، ویرایشها از بین خواهند رفت.
- ایجاد خطاهای کدنویسی در فایل توابع میتواند به سایت آسیب بزند.
حتی چیزی به سادگی یک نقطه ویرگول اضافی میتواند کل سایت شما را با خطایی به نام “صفحه سفید مرگ” مواجه کند. پس اگر واقعا باید از توابع استفاده کنید حتما از افراد توسعه دهنده و حاذق کمک بگیرید.
اشتباه کدنویسی در فایل functions.php میتواند منجر به خطاهای دیگر وردپرس نیز شود. فقط در صورتی باید یک فایل functions.php را ویرایش کنید که child theme دارید و تکههای کد فقط با تم فرزند فعال استفاده میشوند. برای مثال، ممکن است بخواهید قطعههایی را برای فونتهای سفارشی، شیوه نامه، یا یک فایل ترجمه زبان بهطور خاص برای موضوعی اضافه کنید.
معرفی تمامی توابع وردپرس
فایلهای وردپرس بسیاری از توابع مفید PHP را تعریف میکنند. برخی از توابع در وردپرس، که به عنوان برچسبهای قالب شناخته میشوند، به ویژه برای استفاده در قالبهای وردپرس تعریف شدهاند. همچنین برخی از توابع مربوط به اقدامات و فیلترها (Plugin API) وجود دارند که عمدتاً برای توسعه پلاگینها مورد استفاده قرار میگیرند. بقیه برای ایجاد عملکرد اصلی وردپرس استفاده میشود.
بسیاری از توابع اصلی وردپرس برای توسعه دهندگان افزونه و قالب مفید هستند. بنابراین، در اینجا بیشتر توابع اصلی را به استثنای برچسبهای الگو فهرست میکنیم:
توابع پست:
- get_adjacent_post
- get_boundary_post
- get_children
- get_extended
- get_next_post
- get_next_posts_link
- next_posts_link
- get_permalink
- the_permalink
- get_the_excerpt
- the_excerpt
- get_the_post_thumbnail
- get_post
- get_post_field
- get_post_ancestors
- get_post_mime_type
- get_post_status
- get_post_format
- set_post_format
- get_edit_post_link
- get_delete_post_link
- get_previous_post
- get_previous_posts_link
- previous_posts_link
- get_posts
- have_posts
- is_post
- is_single
- is_sticky
- get_the_ID
- the_ID
- the_post
- wp_get_recent_posts
- wp_get_single_post
- has_post_thumbnail
- has_excerpt
- has_post_format
توابع پست سفارشی:
- register_post_status
نوع پست سفارشی:
- register_post_type
- is_post_type_archive
- post_type_archive_title
- add_post_type_support
- remove_post_type_support
- post_type_supports
- set_post_type
- post_type_exists
- get_post_type
- get_post_types
- get_post_type_archive_link
- get_post_type_object
- get_post_type_capabilities
- get_post_type_labels
- is_post_type_hierarchical
درج و حذف پست:
- wp_delete_post
- wp_insert_post
- wp_publish_post
- wp_trash_post
- wp_update_post
برگه ها:
- get_all_page_ids
- get_ancestors
- get_page
- get_page_link
- get_page_by_path
- get_page_by_title
- get_page_children
- get_page_hierarchy
- get_page_uri
- get_pages
- is_page
- page_uri_index
- wp_link_pages
- wp_list_pages
- wp_page_menu
- wp_dropdown_pages
فیلدهای سفارشی (postmeta):
- add_post_meta
- delete_post_meta
- get_post_custom
- get_post_custom_keys
- get_post_custom_values
- get_post_meta
- update_post_meta
- register_meta
پیوست ها:
- get_attached_file
- image_resize
- image_edit_before_change
- is_attachment
- is_local_attachment
- set_post_thumbnail
- update_attached_file
- wp_attachment_is_image
- wp_create_thumbnail
- wp_insert_attachment
- wp_delete_attachment
- wp_get_attachment_image
- wp_get_attachment_link
- wp_get_attachment_image_src
- wp_get_attachment_metadata
- wp_get_attachment_thumb_file
- wp_get_attachment_thumb_url
- wp_get_attachment_url
- wp_check_for_changed_slugs
- wp_count_posts
- wp_get_mime_types
- wp_mime_type_icon
- wp_generate_attachment_metadata
- wp_prepare_attachment_for_js
- wp_update_attachment_metadata
بوکمارک:
- get_bookmark
- get_bookmarks
- wp_list_bookmarks
موارد اصلی:
- wp_get_post_categories
- wp_set_post_categories
- wp_get_post_tags
- wp_set_post_tags
- wp_get_post_terms
- wp_set_post_terms
- wp_count_terms
- has_term
- is_object_in_term
سایر موارد:
- add_meta_box
- remove_meta_box
- get_the_ID
- the_ID
- get_the_author
- the_author
- get_the_author_posts
- get_the_content
- the_content
- get_the_title
- the_title
- the_title_attribute
- wp_trim_excerpt
- wp_get_post_revision
- wp_get_post_revisions
- wp_is_post_revision
- paginate_links
دسته ها:
- cat_is_ancestor_of
- get_all_category_ids
- get_ancestors
- get_cat_ID
- get_cat_name
- get_categories
- get_category
- get_category_by_path
- get_category_by_slug
- get_the_category_by_ID
- get_the_category_list
- get_category_link
- get_category_parents
- get_the_category
- single_cat_title
- in_category
- is_category
- the_category
- wp_category_checklist
- wp_dropdown_categories
- wp_list_categories
ایجاد دسته:
- wp_create_category
- wp_delete_category
- wp_insert_category
برچسبها:
- get_tag
- get_tag_link
- get_tags
- get_the_tag_list
- get_the_tags
- has_tag
- is_tag
- the_tags
- single_tag_title
- tag_description
- wp_generate_tag_cloud
- wp_tag_cloud
دسته بندی:
- get_object_taxonomies
- get_edit_term_link
- get_taxonomy
- get_taxonomies
- get_term
- get_the_term_list
- get_term_by
- the_terms
- get_the_terms
- get_term_children
- get_term_link
- get_terms
- is_taxonomy
- is_tax
- is_taxonomy_hierarchical
- is_term
- taxonomy_exists
- term_exists
- register_taxonomy
- register_taxonomy_for_object_type
- wp_get_object_terms
- wp_remove_object_terms
- wp_set_object_terms
- wp_insert_term
- wp_update_term
- wp_delete_term
- wp_terms_checklist
نقش مدیریت و سایرین:
- add_cap
- add_role
- author_can
- current_user_can
- current_user_can_for_blog
- get_role
- get_super_admins
- is_super_admin
- map_meta_cap
- remove_cap
- remove_role
- user_can
کاربران و نویسندگان:
- auth_redirect
- count_users
- count_user_posts
- count_many_users_posts
- email_exists
- get_currentuserinfo
- get_current_user_id
- get_profile
- get_user_by
- get_userdata
- get_usernumposts
- get_users
- set_current_user
- user_pass_ok
- wp_authenticate
- username_exists
- validate_username
- wp_dropdown_users
- wp_get_current_user
- wp_set_current_user
- wp_set_password
- get_author_posts_url
- get_the_modified_author
- is_multi_author
متای کاربر:
- add_user_meta
- delete_user_meta
- get_user_meta
- update_user_meta
- get_the_author_meta
عضویت و حذف کاربر:
- wp_create_user
- wp_delete_user
- wp_insert_user
- wp_update_user
ورود/ خروج:
- is_user_logged_in
- wp_login_form
- wp_signon
- wp_logout
- wp_loginout
- wp_logout_url
تابع فید:
- bloginfo_rss
- comment_author_rss
- comment_link
- comment_text_rss
- do_feed
- do_feed_atom
- do_feed_rdf
- do_feed_rss
- do_feed_rss2
- fetch_feed
- fetch_rss
- get_author_feed_link
- get_bloginfo_rss
- get_category_feed_link
- get_comment_link
- get_comment_author_rss
- get_post_comments_feed_link
- get_rss
- get_search_comments_feed_link
- get_search_feed_link
- get_the_category_rss
- get_the_title_rss
- permalink_single_rss
- post_comments_feed_link
- rss_enclosure
- the_title_rss
- the_category_rss
- the_content_rss
- the_excerpt_rss
- wp_rss
توابع HTTP API:
- wp_remote_get
- wp_remote_retrieve_body
- wp_get_http_headers
- wp_remote_fopen
توابع دیدگاهها، پینگ و ردیابی:
- add_ping
- add_comment_meta
- check_comment
- comment_text
- comment_form
- comments_number
- discover_pingback_server_uri
- delete_comment_meta
- do_all_pings
- do_enclose
- do_trackbacks
- generic_ping
- get_approved_comments
- get_avatar
- get_comment
- get_comment_text
- get_comment_meta
- get_comments
- wp_list_comments
- get_enclosed
- get_lastcommentmodified
- get_pung
- get_to_ping
- have_comments
- get_comment_author
- is_trackback
- pingback
- privacy_ping_filter
- sanitize_comment_cookies
- trackback
- trackback_url
- trackback_url_list
- update_comment_meta
- weblog_ping
- wp_allow_comment
- wp_count_comments
- wp_delete_comment
- wp_filter_comment
- wp_get_comment_status
- wp_get_current_commenter
- wp_insert_comment
- wp_new_comment
- wp_set_comment_status
- wp_throttle_comment_flood
- wp_update_comment
- wp_update_comment_count
- wp_update_comment_count_now
حقه کامنتها:
- comment_class
- comment_ID
- comment_author
- comment_date
- comment_time
- get_comment_date
- get_comment_time
صفحه بندی نظرات:
- paginate_comments_links
- previous_comments_link
- next_comments_link
- get_comment_pages_count
توابع اکشن، فیلتر و پلاگین:
فیلترها:
- has_filter
- add_filter
- apply_filters
- apply_filters_ref_array
- current_filter
- merge_filters
- remove_filter
- remove_all_filters
اکشنها:
- has_action
- add_action
- do_action
- do_action_ref_array
- did_action
- remove_action
- remove_all_actions
پلاگینها:
- plugin_basename
- plugins_url
- get_plugin_data
- get_admin_page_title
- plugin_dir_path
- register_activation_hook
- register_deactivation_hook
- menu_page_url
- is_plugin_active
- is_plugin_active_for_network
- is_plugin_inactive
- is_plugin_page
- add_contextual_help
- get_plugins
ابزارکها:
- is_active_widget
- register_widget
- the_widget
- unregister_widget
- wp_add_dashboard_widget
- wp_convert_widget_settings
- wp_get_sidebars_widgets
- wp_get_widget_defaults
- wp_register_sidebar_widget
- wp_register_widget_control
- wp_set_sidebars_widgets
- wp_unregister_sidebar_widget
- wp_unregister_widget_control
- wp_widget_description
تنظیمات:
- register_setting
- unregister_setting
- settings_fields
- do_settings_fields
- do_settings_sections
- add_settings_field
- add_settings_section
- add_settings_error
- get_settings_errors
- settings_errors
شورتکدها:
- add_shortcode
- do_shortcode
- do_shortcode_tag
- get_shortcode_regex
- remove_shortcode
- remove_all_shortcodes
- shortcode_atts
- shortcode_parse_atts
- strip_shortcodes
توابع مرتبط با قالب:
شامل توابع:
- comments_template
- get_footer
- get_header
- get_sidebar
- get_search_form
سایر توابع:
- add_custom_background
- add_custom_image_header
- add_image_size
- add_theme_support
- body_class
- current_theme_supports
- dynamic_sidebar
- get_404_template
- get_archive_template
- get_attachment_template
- get_author_template
- get_body_class
- get_category_template
- get_comments_popup_template
- get_current_theme
- get_date_template
- get_header_image
- get_header_textcolor
- get_home_template
- get_locale_stylesheet_uri
- get_page_template
- get_paged_template
- get_post_class
- get_query_template
- get_search_template
- get_single_template
- get_stylesheet
- get_stylesheet_directory
- get_stylesheet_directory_uri
- get_stylesheet_uri
- get_tag_template
- get_taxonomy_template
- get_template
- get_template_directory
- get_template_directory_uri
- get_theme_file_uri
- get_theme_file_path
- get_template_part
- get_theme
- wp_get_themes
- get_theme_data
- get_theme_support
- get_theme_mod
- get_theme_mods
- get_theme_root
- get_theme_roots
- get_theme_root_uri
- get_themes
- has_header_image
- header_image
- header_textcolor
- in_the_loop
- is_child_theme
- is_active_sidebar
- is_admin_bar_showing
- is_customize_preview
- is_dynamic_sidebar
- language_attributes
- load_template
- locale_stylesheet
- locate_template
- post_class
- preview_theme
- preview_theme_ob_filter
- preview_theme_ob_filter_callback
- register_nav_menu
- register_nav_menus
- get_registered_nav_menus
- wp_create_nav_menu
- register_sidebar
- register_sidebars
- register_theme_directory
- remove_theme_mod
- remove_theme_mods
- remove_theme_support
- require_if_theme_supports
- search_theme_directories
- set_theme_mod
- switch_theme
- validate_current_theme
- unregister_nav_menu
- unregister_sidebar
- wp_add_inline_style
- wp_clean_themes_cache
- wp_get_archives
- wp_get_nav_menu_items
- wp_get_theme
- wp_nav_menu
- wp_oembed_remove_provider
- wp_page_menu
- wp_title
توابع قالب بندی:
- absint
- add_magic_quotes
- addslashes_gpc
- antispambot
- attribute_escape
- backslashit
- balanceTags
- clean_pre
- clean_url
- convert_chars
- convert_smilies
- ent2ncr
- esc_attr
- esc_html
- esc_js
- esc_textarea
- esc_sql
- esc_url
- esc_url_raw
- force_balance_tags
- format_to_edit
- format_to_post
- funky_javascript_fix
- htmlentities2
- is_email
- js_escape
- make_clickable
- popuplinks
- remove_accents
- sanitize_email
- sanitize_file_name
- sanitize_html_class
- sanitize_key
- sanitize_mime_type
- sanitize_option
- sanitize_sql_orderby
- sanitize_text_field
- sanitize_title
- sanitize_title_for_query
- sanitize_title_with_dashes
- sanitize_user
- seems_utf8
- stripslashes_deep
- trailingslashit
- untrailingslashit
- urlencode_deep
- url_shorten
- utf8_uri_encode
- wpautop
- wptexturize
- wp_filter_kses
- wp_filter_post_kses
- wp_filter_nohtml_kses
- wp_iso_descrambler
- wp_kses
- wp_kses_array_lc
- wp_kses_attr
- wp_kses_bad_protocol
- wp_kses_bad_protocol_once
- wp_kses_bad_protocol_once2
- wp_kses_check_attr_val
- wp_kses_decode_entities
- wp_kses_hair
- wp_kses_hook
- wp_kses_html_error
- wp_kses_js_entities
- wp_kses_no_null
- wp_kses_normalize_entities
- wp_kses_normalize_entities2
- wp_kses_post
- wp_kses_split
- wp_kses_split2
- wp_kses_stripslashes
- wp_kses_version
- wp_make_link_relative
- wp_normalize_path
- wp_rel_nofollow
- wp_richedit_pre
- wp_specialchars
- wp_trim_words
- zeroise
تمامی توابعی که در بالا برایتان معرفی کردیم اصلی و ضروری هستند و شناخت آنها برای افرادی که تمایل به تغییراتی دارند، ضروریست.
توابع در وردپرس
همه قالبهای وردپرسی با یک فایل قدرتمند functions.php ارائه میشوند. این فایل به عنوان یک افزونه عمل میکند و به شما اجازه میدهد تا کارهای زیادی را در سایت وردپرس انجام دهید. تغییراتی که میتواند تحول عظیمی در سایت شما ایجاد کند!
حالا شما بگویید؛ چه تجربهای از کار کردن در فایل function.php دارید؟
بنیامین
سلام –میشه بگید با چه کد یا افزونه ای میشه اطلاعات عکس مثل رزلوشن وسایز حجم .. برای بازدید کنندگان نمایش داد؟؟؟؟
نظر شما منتظر تاييد مديريت سايت است.
علی حاجی محمدی 14 سال عضو همیار وردپرس
والا با meta box میشه این کارو کرد
سعید
سلام
داداش چطوری Custom Field تو قالب ایجاد کنم ؟ بدون استفاده از پلاگین
ممنون
علی حاجی محمدی 14 سال عضو همیار وردپرس
به زودی اموزش کاملی قرار خواهیم داد
سوران
سايت خوبيه
اسماعیل احمدی
با سلام من تازه با وردپرس آشنا شدم و کار کردن با هک های وردپرس رو بلد نیستم اگه میشه راهنماییم کنید
امیر
سلام
ممنون ، توی درست کردن custom post ویدئو های آپارات خیلی به دردم خورد
خسته نباشید
maikel
خیلی به جـــــــــــا بــــــــــــود
ممنونم
جواد عباسی
سلام
فقط میشه چند تا مثال بزنید؟
علی حاجی محمدی 14 سال عضو همیار وردپرس
تنظیم فایل wp-config
درست کردن ابزارک / فهرست
درست کردن custom post و …
رها
سلام
یکی از مشکلات بزرگی که شما در اموزشها و طراحیهاتون تا اینجای کار من دیدم استفاده از html transition 1.0 هست که خوب در نوع خودش واقعا قدیمی هست بخصوص با وجود html5 , css3 که الان حدود دو 3 سالی هست روی کار اومده
حالا سوالم اینه ایا این بسته اموزشی رو با استاندارد html5 , css3 کار کردید یا همون استاندارد های قدیمی html , css
ممنون میشم اگر این اموزش بصورت کلی با استاندارد های جدیده اطلاع بدهید تا در صورت امکان یه بسته اش را هم من بخرم
با تشکر و ارزوی توفیق
بهروز
سلام علی جان ،
خیلی ممنون از بابت معرفی چنین سایتی ،
فوق العاده مفید بود.
راستی علی برای فیلدهای کامنت سایتت یه placeholder بذار 🙁
در ضمن ، خیلی دلم برات تنگ شده :-*