توابع در وردپرس را بهتر بشناسیم

توابع در وردپرس

در وردپرس، functions.php یا توابع در وردپرس، فایلی است که در قالب‌های وردپرس گنجانده شده است. این فایل مانند یک افزونه برای سایت وردپرس عمل می‌کند و به طور خودکار با قالب فعلی شما فعال می‌شود. فایل functions.php از کد PHP برای افزودن ویژگی‌ها یا تغییر ویژگی‌های پیش فرض در سایت استفاده می‌کند. به عنوان مثال، یک پوسته وردپرس ممکن است کمی کد به فایل functions.php اضافه کند تا یک ناحیه ویجت جدید به پاورقی اضافه کند، یا یک پیام خوشامدگویی سفارشی به داشبورد وردپرس اضافه کند. در هر صورت می‌توان با کمک این فایل امکانات بی‌پایانی را بدون نصب افزونه اضافه کرد.

توابع در وردپرس

فایل functions.php به طور خودکار زمانی که یک قالب وردپرس را نصب و فعال می‌کنید بارگیری می‌شود. ویرایش فایل functions.php با استفاده از کدهای سفارشی به شما امکان می‌دهد تا انواع پست، دسته بندی‌ها، شورت کدها و موارد دیگر را برای بهبود وبسایت خود اضافه کنید.

جایگاه فایل توابع وردپرس در کجاست؟

محل فایل functions.php در پوشه قالب است. اگر می‌خواهید یک قطعه کد به سایت وردپرسی اضافه کنید، اضافه کردن آن به فایل functions.php یکی از گزینه‌ها است. اما معمولاً این بهترین راه برای انجام آن نیست. وردپرس سعی می‌کند تا حد امکان طراحی و عملکرد را از هم جدا کند. به همین دلیل است که ما تم‌هایی داریم که طراحی را تعیین می‌کنند و پلاگین‌هایی که عملکردها را تعیین می‌کنند.

اگر بتوانید قالب وردپرس خود را بدون تغییر در نحوه عملکرد سایت خود تغییر دهید یا افزونه‌های خود را بدون تأثیر بر طراحی سایت تغییر دهید، بهتر است.
آموزش وردپرس به شما می‌گوید قطعه کد را به فایل functions.php تم خود اضافه کنید، اما این معمولا ایده خوبی برای هر شخصی نیست. اگر تصمیم دارید فایل functions.php خود را ویرایش کنید، لطفاً بسیار احتیاط کنید یا ترجیحا از یک فرد متخصص کمک بگیرید.
در اینجا ۳ دلیل وجود دارد احتیاطی برای ویرایش فایل functions.php وجود دارد:

  1. ویرایش‌ توابع در وردپرس با به‌روزرسانی تم از بین می‌رود.
  2. اگر قالب وردپرس خود را تغییر دهید، ویرایش‌ها از بین خواهند رفت.
  3. ایجاد خطاهای کدنویسی در فایل توابع می‌تواند به سایت آسیب بزند.

حتی چیزی به سادگی یک نقطه ویرگول اضافی می‌تواند کل سایت شما را با خطایی به نام “صفحه سفید مرگ” مواجه کند. پس اگر واقعا باید از توابع استفاده کنید حتما از افراد توسعه دهنده و حاذق کمک بگیرید.

اشتباه کدنویسی در فایل 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 دارید؟

آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

دیدگاهتان را بنویسید

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. سلام –میشه بگید با چه کد یا افزونه ای میشه اطلاعات عکس مثل رزلوشن وسایز حجم .. برای بازدید کنندگان نمایش داد؟؟؟؟
    نظر شما منتظر تاييد مديريت سايت است.

  2. سلام
    داداش چطوری Custom Field تو قالب ایجاد کنم ؟ بدون استفاده از پلاگین
    ممنون

  3. سايت خوبيه

  4. با سلام من تازه با وردپرس آشنا شدم و کار کردن با هک های وردپرس رو بلد نیستم اگه میشه راهنماییم کنید

  5. سلام
    ممنون ، توی درست کردن custom post ویدئو های آپارات خیلی به دردم خورد
    خسته نباشید

  6. خیلی به جـــــــــــا بــــــــــــود
    ممنونم

  7. سلام
    فقط میشه چند تا مثال بزنید؟

    • 14 سال عضو همیار وردپرس

      تنظیم فایل wp-config
      درست کردن ابزارک / فهرست
      درست کردن custom post و …

  8. سلام
    یکی از مشکلات بزرگی که شما در اموزشها و طراحیهاتون تا اینجای کار من دیدم استفاده از html transition 1.0 هست که خوب در نوع خودش واقعا قدیمی هست بخصوص با وجود html5 , css3 که الان حدود دو 3 سالی هست روی کار اومده
    حالا سوالم اینه ایا این بسته اموزشی رو با استاندارد html5 , css3 کار کردید یا همون استاندارد های قدیمی html , css
    ممنون میشم اگر این اموزش بصورت کلی با استاندارد های جدیده اطلاع بدهید تا در صورت امکان یه بسته اش را هم من بخرم
    با تشکر و ارزوی توفیق

  9. سلام علی جان ،
    خیلی ممنون از بابت معرفی چنین سایتی ،
    فوق العاده مفید بود.
    راستی علی برای فیلدهای کامنت سایتت یه placeholder بذار 🙁
    در ضمن ، خیلی دلم برات تنگ شده :-*