'; } else { $form = ''; } } /** * Filter the HTML output of the search form. * * @since 2.7.0 * * @param string $form The search form HTML output. */ $result = apply_filters( 'get_search_form', $form ); if ( null === $result ) $result = $form; if ( $echo ) echo $result; else return $result; } /** * Display the Log In/Out link. * * Displays a link, which allows users to navigate to the Log In page to log in * or log out depending on whether they are currently logged in. * * @since 1.5.0 * * @param string $redirect Optional path to redirect to on login/logout. * @param bool $echo Default to echo and not return the link. * @return string|void String when retrieving. */ function wp_loginout($redirect = '', $echo = true) { if ( ! is_user_logged_in() ) $link = '' . __('Log in') . ''; else $link = '' . __('Log out') . ''; if ( $echo ) { /** * Filter the HTML output for the Log In/Log Out link. * * @since 1.5.0 * * @param string $link The HTML link content. */ echo apply_filters( 'loginout', $link ); } else { /** This filter is documented in wp-includes/general-template.php */ return apply_filters( 'loginout', $link ); } } /** * Returns the Log Out URL. * * Returns the URL that allows the user to log out of the site. * * @since 2.7.0 * * @param string $redirect Path to redirect to on logout. * @return string A log out URL. */ function wp_logout_url($redirect = '') { $args = array( 'action' => 'logout' ); if ( !empty($redirect) ) { $args['redirect_to'] = urlencode( $redirect ); } $logout_url = add_query_arg($args, site_url('wp-login.php', 'login')); $logout_url = wp_nonce_url( $logout_url, 'log-out' ); /** * Filter the logout URL. * * @since 2.8.0 * * @param string $logout_url The Log Out URL. * @param string $redirect Path to redirect to on logout. */ return apply_filters( 'logout_url', $logout_url, $redirect ); } /** * Returns the URL that allows the user to log in to the site. * * @since 2.7.0 * * @param string $redirect Path to redirect to on login. * @param bool $force_reauth Whether to force reauthorization, even if a cookie is present. Default is false. * @return string A log in URL. */ function wp_login_url($redirect = '', $force_reauth = false) { $login_url = site_url('wp-login.php', 'login'); if ( !empty($redirect) ) $login_url = add_query_arg('redirect_to', urlencode($redirect), $login_url); if ( $force_reauth ) $login_url = add_query_arg('reauth', '1', $login_url); /** * Filter the login URL. * * @since 2.8.0 * @since 4.2.0 The `$force_reauth` parameter was added. * * @param string $login_url The login URL. * @param string $redirect The path to redirect to on login, if supplied. * @param bool $force_reauth Whether to force reauthorization, even if a cookie is present. */ return apply_filters( 'login_url', $login_url, $redirect, $force_reauth ); } /** * Returns the URL that allows the user to register on the site. * * @since 3.6.0 * * @return string User registration URL. */ function wp_registration_url() { /** * Filter the user registration URL. * * @since 3.6.0 * * @param string $register The user registration URL. */ return apply_filters( 'register_url', site_url( 'wp-login.php?action=register', 'login' ) ); } /** * Provides a simple login form for use anywhere within WordPress. * * The login format HTML is echoed by default. Pass a false value for `$echo` to return it instead. * * @since 3.0.0 * * @param array $args { * Optional. Array of options to control the form output. Default empty array. * * @type bool $echo Whether to display the login form or return the form HTML code. * Default true (echo). * @type string $redirect URL to redirect to. Must be absolute, as in "https://example.com/mypage/". * Default is to redirect back to the request URI. * @type string $form_id ID attribute value for the form. Default 'loginform'. * @type string $label_username Label for the username field. Default 'Username'. * @type string $label_password Label for the password field. Default 'Password'. * @type string $label_remember Label for the remember field. Default 'Remember Me'. * @type string $label_log_in Label for the submit button. Default 'Log In'. * @type string $id_username ID attribute value for the username field. Default 'user_login'. * @type string $id_password ID attribute value for the password field. Default 'user_pass'. * @type string $id_remember ID attribute value for the remember field. Default 'rememberme'. * @type string $id_submit ID attribute value for the submit button. Default 'wp-submit'. * @type bool $remember Whether to display the "rememberme" checkbox in the form. * @type string $value_username Default value for the username field. Default empty. * @type bool $value_remember Whether the "Remember Me" checkbox should be checked by default. * Default false (unchecked). * * } * @return string|void String when retrieving. */ function wp_login_form( $args = array() ) { $defaults = array( 'echo' => true, // Default 'redirect' value takes the user back to the request URI. 'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'form_id' => 'loginform', 'label_username' => __( 'Username' ), 'label_password' => __( 'Password' ), 'label_remember' => __( 'Remember Me' ), 'label_log_in' => __( 'Log In' ), 'id_username' => 'user_login', 'id_password' => 'user_pass', 'id_remember' => 'rememberme', 'id_submit' => 'wp-submit', 'remember' => true, 'value_username' => '', // Set 'value_remember' to true to default the "Remember me" checkbox to checked. 'value_remember' => false, ); /** * Filter the default login form output arguments. * * @since 3.0.0 * * @see wp_login_form() * * @param array $defaults An array of default login form arguments. */ $args = wp_parse_args( $args, apply_filters( 'login_form_defaults', $defaults ) ); /** * Filter content to display at the top of the login form. * * The filter evaluates just following the opening form tag element. * * @since 3.0.0 * * @param string $content Content to display. Default empty. * @param array $args Array of login form arguments. */ $login_form_top = apply_filters( 'login_form_top', '', $args ); /** * Filter content to display in the middle of the login form. * * The filter evaluates just following the location where the 'login-password' * field is displayed. * * @since 3.0.0 * * @param string $content Content to display. Default empty. * @param array $args Array of login form arguments. */ $login_form_middle = apply_filters( 'login_form_middle', '', $args ); /** * Filter content to display at the bottom of the login form. * * The filter evaluates just preceding the closing form tag element. * * @since 3.0.0 * * @param string $content Content to display. Default empty. * @param array $args Array of login form arguments. */ $login_form_bottom = apply_filters( 'login_form_bottom', '', $args ); $form = '
' . $login_form_top . '

' . $login_form_middle . ' ' . ( $args['remember'] ? '

' : '' ) . '

' . $login_form_bottom . '
'; if ( $args['echo'] ) echo $form; else return $form; } /** * Returns the URL that allows the user to retrieve the lost password * * @since 2.8.0 * * @param string $redirect Path to redirect to on login. * @return string Lost password URL. */ function wp_lostpassword_url( $redirect = '' ) { $args = array( 'action' => 'lostpassword' ); if ( !empty($redirect) ) { $args['redirect_to'] = $redirect; } $lostpassword_url = add_query_arg( $args, network_site_url('wp-login.php', 'login') ); /** * Filter the Lost Password URL. * * @since 2.8.0 * * @param string $lostpassword_url The lost password page URL. * @param string $redirect The path to redirect to on login. */ return apply_filters( 'lostpassword_url', $lostpassword_url, $redirect ); } /** * Display the Registration or Admin link. * * Display a link which allows the user to navigate to the registration page if * not logged in and registration is enabled or to the dashboard if logged in. * * @since 1.5.0 * * @param string $before Text to output before the link. Default `
  • `. * @param string $after Text to output after the link. Default `
  • `. * @param bool $echo Default to echo and not return the link. * @return string|void String when retrieving. */ function wp_register( $before = '
  • ', $after = '
  • ', $echo = true ) { if ( ! is_user_logged_in() ) { if ( get_option('users_can_register') ) $link = $before . '' . __('Register') . '' . $after; else $link = ''; } elseif ( current_user_can( 'read' ) ) { $link = $before . '' . __('Site Admin') . '' . $after; } else { $link = ''; } /** * Filter the HTML link to the Registration or Admin page. * * Users are sent to the admin page if logged-in, or the registration page * if enabled and logged-out. * * @since 1.5.0 * * @param string $link The HTML code for the link to the Registration or Admin page. */ $link = apply_filters( 'register', $link ); if ( $echo ) { echo $link; } else { return $link; } } /** * Theme container function for the 'wp_meta' action. * * The 'wp_meta' action can have several purposes, depending on how you use it, * but one purpose might have been to allow for theme switching. * * @since 1.5.0 * * @link https://core.trac.wordpress.org/ticket/1458 Explanation of 'wp_meta' action. */ function wp_meta() { /** * Fires before displaying echoed content in the sidebar. * * @since 1.5.0 */ do_action( 'wp_meta' ); } /** * Display information about the blog. * * @see get_bloginfo() For possible values for the parameter. * @since 0.71 * * @param string $show What to display. */ function bloginfo( $show='' ) { echo get_bloginfo( $show, 'display' ); } /** * Retrieve information about the blog. * * Some show parameter values are deprecated and will be removed in future * versions. These options will trigger the {@see _deprecated_argument()} * function. The deprecated blog info options are listed in the function * contents. * * The possible values for the 'show' parameter are listed below. * * 1. url - Blog URI to homepage. * 2. wpurl - Blog URI path to WordPress. * 3. description - Secondary title * * The feed URL options can be retrieved from 'rdf_url' (RSS 0.91), * 'rss_url' (RSS 1.0), 'rss2_url' (RSS 2.0), or 'atom_url' (Atom feed). The * comment feeds can be retrieved from the 'comments_atom_url' (Atom comment * feed) or 'comments_rss2_url' (RSS 2.0 comment feed). * * @since 0.71 * * @global string $wp_version * * @param string $show Blog info to retrieve. * @param string $filter How to filter what is retrieved. * @return string Mostly string values, might be empty. */ function get_bloginfo( $show = '', $filter = 'raw' ) { switch( $show ) { case 'home' : // DEPRECATED case 'siteurl' : // DEPRECATED _deprecated_argument( __FUNCTION__, '2.2', sprintf( /* translators: 1: 'siteurl'/'home' argument, 2: bloginfo() function name, 3: 'url' argument */ __( 'The %1$s option is deprecated for the family of %2$s functions. Use the %3$s option instead.' ), '' . $show . '', 'bloginfo()', 'url' ) ); case 'url' : $output = home_url(); break; case 'wpurl' : $output = site_url(); break; case 'description': $output = get_option('blogdescription'); break; case 'rdf_url': $output = get_feed_link('rdf'); break; case 'rss_url': $output = get_feed_link('rss'); break; case 'rss2_url': $output = get_feed_link('rss2'); break; case 'atom_url': $output = get_feed_link('atom'); break; case 'comments_atom_url': $output = get_feed_link('comments_atom'); break; case 'comments_rss2_url': $output = get_feed_link('comments_rss2'); break; case 'pingback_url': $output = site_url( 'xmlrpc.php' ); break; case 'stylesheet_url': $output = get_stylesheet_uri(); break; case 'stylesheet_directory': $output = get_stylesheet_directory_uri(); break; case 'template_directory': case 'template_url': $output = get_template_directory_uri(); break; case 'admin_email': $output = get_option('admin_email'); break; case 'charset': $output = get_option('blog_charset'); if ('' == $output) $output = 'UTF-8'; break; case 'html_type' : $output = get_option('html_type'); break; case 'version': global $wp_version; $output = $wp_version; break; case 'language': $output = get_locale(); $output = str_replace('_', '-', $output); break; case 'text_direction': _deprecated_argument( __FUNCTION__, '2.2', sprintf( /* translators: 1: 'text_direction' argument, 2: bloginfo() function name, 3: is_rtl() function name */ __( 'The %1$s option is deprecated for the family of %2$s functions. Use the %3$s function instead.' ), '' . $show . '', 'bloginfo()', 'is_rtl()' ) ); if ( function_exists( 'is_rtl' ) ) { $output = is_rtl() ? 'rtl' : 'ltr'; } else { $output = 'ltr'; } break; case 'name': default: $output = get_option('blogname'); break; } $url = true; if (strpos($show, 'url') === false && strpos($show, 'directory') === false && strpos($show, 'home') === false) $url = false; if ( 'display' == $filter ) { if ( $url ) { /** * Filter the URL returned by get_bloginfo(). * * @since 2.0.5 * * @param mixed $output The URL returned by bloginfo(). * @param mixed $show Type of information requested. */ $output = apply_filters( 'bloginfo_url', $output, $show ); } else { /** * Filter the site information returned by get_bloginfo(). * * @since 0.71 * * @param mixed $output The requested non-URL site information. * @param mixed $show Type of information requested. */ $output = apply_filters( 'bloginfo', $output, $show ); } } return $output; } /** * Returns the Site Icon URL. * * @since 4.3.0 * * @param int $size Optional. Size of the site icon. Default 512 (pixels). * @param string $url Optional. Fallback url if no site icon is found. Default empty. * @param int $blog_id Optional. ID of the blog to get the site icon for. Default current blog. * @return string Site Icon URL. */ function get_site_icon_url( $size = 512, $url = '', $blog_id = 0 ) { if ( $blog_id && is_multisite() ) { $site_icon_id = get_blog_option( $blog_id, 'site_icon' ); } else { $site_icon_id = get_option( 'site_icon' ); } if ( $site_icon_id ) { if ( $size >= 512 ) { $size_data = 'full'; } else { $size_data = array( $size, $size ); } $url_data = wp_get_attachment_image_src( $site_icon_id, $size_data ); if ( $url_data ) { $url = $url_data[0]; } } return $url; } /** * Displays the Site Icon URL. * * @since 4.3.0 * * @param int $size Optional. Size of the site icon. Default 512 (pixels). * @param string $url Optional. Fallback url if no site icon is found. Default empty. * @param int $blog_id Optional. ID of the blog to get the site icon for. Default current blog. */ function site_icon_url( $size = 512, $url = '', $blog_id = 0 ) { echo esc_url( get_site_icon_url( $size, $url, $blog_id ) ); } /** * Whether the site has a Site Icon. * * @since 4.3.0 * * @param int $blog_id Optional. ID of the blog in question. Default current blog. * @return bool Whether the site has a site icon or not. */ function has_site_icon( $blog_id = 0 ) { return (bool) get_site_icon_url( 512, '', $blog_id ); } /** * Returns document title for the current page. * * @since 4.4.0 * * @global int $page Page number of a single post. * @global int $paged Page number of a list of posts. * * @return string Tag with the document title. */ function wp_get_document_title() { /** * Filter the document title before it is generated. * * Passing a non-empty value will short-circuit wp_get_document_title(), * returning that value instead. * * @since 4.4.0 * * @param string $title The document title. Default empty string. */ $title = apply_filters( 'pre_get_document_title', '' ); if ( ! empty( $title ) ) { return $title; } global $page, $paged; $title = array( 'title' => '', ); // If on the home or front page, use the site title. if ( is_home() && is_front_page() ) { $title['title'] = get_bloginfo( 'name', 'display' ); /* * If we're on the blog page and that page is not the homepage or a single * page that is designated as the homepage, use the container page's title. */ } elseif ( ( is_home() && ! is_front_page() ) || ( ! is_home() && is_front_page() ) ) { $title['title'] = single_post_title( '', false ); // If on a single post of any post type, use the post title. } elseif ( is_singular() ) { $title['title'] = single_post_title( '', false ); // If on a category or tag or taxonomy archive, use the archive title. } elseif ( is_category() || is_tag() || is_tax() ) { $title['title'] = single_term_title( '', false ); // If it's a search, use a dynamic search results title. } elseif ( is_search() ) { /* translators: %s: search phrase */ $title['title'] = sprintf( __( 'Search Results for “%s”' ), get_search_query() ); // If on an author archive, use the author's display name. } elseif ( is_author() && $author = get_queried_object() ) { $title['title'] = $author->display_name; // If on a post type archive, use the post type archive title. } elseif ( is_post_type_archive() ) { $title['title'] = post_type_archive_title( '', false ); // If it's a date archive, use the date as the title. } elseif ( is_year() ) { $title['title'] = get_the_date( _x( 'Y', 'yearly archives date format' ) ); } elseif ( is_month() ) { $title['title'] = get_the_date( _x( 'F Y', 'monthly archives date format' ) ); } elseif ( is_day() ) { $title['title'] = get_the_date(); // If it's a 404 page, use a "Page not found" title. } elseif ( is_404() ) { $title['title'] = __( 'Page not found' ); } // Add a page number if necessary. if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) { $title['page'] = sprintf( __( 'Page %s' ), max( $paged, $page ) ); } // Append the description or site title to give context. if ( is_home() && is_front_page() ) { $title['tagline'] = get_bloginfo( 'description', 'display' ); } else { $title['site'] = get_bloginfo( 'name', 'display' ); } /** * Filter the separator for the document title. * * @since 4.4.0 * * @param string $sep Document title separator. Default '-'. */ $sep = apply_filters( 'document_title_separator', '-' ); /** * Filter the parts of the document title. * * @since 4.4.0 * * @param array $title { * The document title parts. * * @type string $title Title of the viewed page. * @type string $page Optional. Page number if paginated. * @type string $tagline Optional. Site description when on home page. * @type string $site Optional. Site title when not on home page. * } */ $title = apply_filters( 'document_title_parts', $title ); $title = implode( " $sep ", array_filter( $title ) ); $title = wptexturize( $title ); $title = convert_chars( $title ); $title = esc_html( $title ); $title = capital_P_dangit( $title ); return $title; } /** * Displays title tag with content. * * @ignore * @since 4.1.0 * @since 4.4.0 Improved title output replaced `wp_title()`. * @access private */ function _wp_render_title_tag() { if ( ! current_theme_supports( 'title-tag' ) ) { return; } echo '' . wp_get_document_title() . '' . "\n"; } /** * Display or retrieve page title for post. * * This is optimized for single.php template file for displaying the post title. * * It does not support placing the separator after the title, but by leaving the * prefix parameter empty, you can set the title separator manually. The prefix * does not automatically place a space between the prefix, so if there should * be a space, the parameter value will need to have it at the end. * * @since 0.71 * * @param string $prefix Optional. What to display before the title. * @param bool $display Optional, default is true. Whether to display or retrieve title. * @return string|void Title when retrieving. */ function single_post_title( $prefix = '', $display = true ) { $_post = get_queried_object(); if ( !isset($_post->post_title) ) return; /** * Filter the page title for a single post. * * @since 0.71 * * @param string $_post_title The single post page title. * @param object $_post The current queried object as returned by get_queried_object(). */ $title = apply_filters( 'single_post_title', $_post->post_title, $_post ); if ( $display ) echo $prefix . $title; else return $prefix . $title; } /** * Display or retrieve title for a post type archive. * * This is optimized for archive.php and archive-{$post_type}.php template files * for displaying the title of the post type. * * @since 3.1.0 * * @param string $prefix Optional. What to display before the title. * @param bool $display Optional, default is true. Whether to display or retrieve title. * @return string|void Title when retrieving, null when displaying or failure. */ function post_type_archive_title( $prefix = '', $display = true ) { if ( ! is_post_type_archive() ) return; $post_type = get_query_var( 'post_type' ); if ( is_array( $post_type ) ) $post_type = reset( $post_type ); $post_type_obj = get_post_type_object( $post_type ); /** * Filter the post type archive title. * * @since 3.1.0 * * @param string $post_type_name Post type 'name' label. * @param string $post_type Post type. */ $title = apply_filters( 'post_type_archive_title', $post_type_obj->labels->name, $post_type ); if ( $display ) echo $prefix . $title; else return $prefix . $title; } /** * Display or retrieve page title for category archive. * * Useful for category template files for displaying the category page title. * The prefix does not automatically place a space between the prefix, so if * there should be a space, the parameter value will need to have it at the end. * * @since 0.71 * * @param string $prefix Optional. What to display before the title. * @param bool $display Optional, default is true. Whether to display or retrieve title. * @return string|void Title when retrieving. */ function single_cat_title( $prefix = '', $display = true ) { return single_term_title( $prefix, $display ); } /** * Display or retrieve page title for tag post archive. * * Useful for tag template files for displaying the tag page title. The prefix * does not automatically place a space between the prefix, so if there should * be a space, the parameter value will need to have it at the end. * * @since 2.3.0 * * @param string $prefix Optional. What to display before the title. * @param bool $display Optional, default is true. Whether to display or retrieve title. * @return string|void Title when retrieving. */ function single_tag_title( $prefix = '', $display = true ) { return single_term_title( $prefix, $display ); } /** * Display or retrieve page title for taxonomy term archive. * * Useful for taxonomy term template files for displaying the taxonomy term page title. * The prefix does not automatically place a space between the prefix, so if there should * be a space, the parameter value will need to have it at the end. * * @since 3.1.0 * * @param string $prefix Optional. What to display before the title. * @param bool $display Optional, default is true. Whether to display or retrieve title. * @return string|void Title when retrieving. */ function single_term_title( $prefix = '', $display = true ) { $term = get_queried_object(); if ( !$term ) return; if ( is_category() ) { /** * Filter the category archive page title. * * @since 2.0.10 * * @param string $term_name Category name for archive being displayed. */ $term_name = apply_filters( 'single_cat_title', $term->name ); } elseif ( is_tag() ) { /** * Filter the tag archive page title. * * @since 2.3.0 * * @param string $term_name Tag name for archive being displayed. */ $term_name = apply_filters( 'single_tag_title', $term->name ); } elseif ( is_tax() ) { /** * Filter the custom taxonomy archive page title. * * @since 3.1.0 * * @param string $term_name Term name for archive being displayed. */ $term_name = apply_filters( 'single_term_title', $term->name ); } else { return; } if ( empty( $term_name ) ) return; if ( $display ) echo $prefix . $term_name; else return $prefix . $term_name; } /** * Display or retrieve page title for post archive based on date. * * Useful for when the template only needs to display the month and year, * if either are available. The prefix does not automatically place a space * between the prefix, so if there should be a space, the parameter value * will need to have it at the end. * * @since 0.71 * * @global WP_Locale $wp_locale * * @param string $prefix Optional. What to display before the title. * @param bool $display Optional, default is true. Whether to display or retrieve title. * @return string|void Title when retrieving. */ function single_month_title($prefix = '', $display = true ) { global $wp_locale; $m = get_query_var('m'); $year = get_query_var('year'); $monthnum = get_query_var('monthnum'); if ( !empty($monthnum) && !empty($year) ) { $my_year = $year; $my_month = $wp_locale->get_month($monthnum); } elseif ( !empty($m) ) { $my_year = substr($m, 0, 4); $my_month = $wp_locale->get_month(substr($m, 4, 2)); } if ( empty($my_month) ) return false; $result = $prefix . $my_month . $prefix . $my_year; if ( !$display ) return $result; echo $result; } /** * Display the archive title based on the queried object. * * @since 4.1.0 * * @see get_the_archive_title() * * @param string $before Optional. Content to prepend to the title. Default empty. * @param string $after Optional. Content to append to the title. Default empty. */ function the_archive_title( $before = '', $after = '' ) { $title = get_the_archive_title(); if ( ! empty( $title ) ) { echo $before . $title . $after; } } /** * Retrieve the archive title based on the queried object. * * @since 4.1.0 * * @return string Archive title. */ function get_the_archive_title() { if ( is_category() ) { $title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) ); } elseif ( is_tag() ) { $title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) ); } elseif ( is_author() ) { $title = sprintf( __( 'Author: %s' ), '' . get_the_author() . '' ); } elseif ( is_year() ) { $title = sprintf( __( 'Year: %s' ), get_the_date( _x( 'Y', 'yearly archives date format' ) ) ); } elseif ( is_month() ) { $title = sprintf( __( 'Month: %s' ), get_the_date( _x( 'F Y', 'monthly archives date format' ) ) ); } elseif ( is_day() ) { $title = sprintf( __( 'Day: %s' ), get_the_date( _x( 'F j, Y', 'daily archives date format' ) ) ); } elseif ( is_tax( 'post_format' ) ) { if ( is_tax( 'post_format', 'post-format-aside' ) ) { $title = _x( 'Asides', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) { $title = _x( 'Galleries', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-image' ) ) { $title = _x( 'Images', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-video' ) ) { $title = _x( 'Videos', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-quote' ) ) { $title = _x( 'Quotes', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-link' ) ) { $title = _x( 'Links', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-status' ) ) { $title = _x( 'Statuses', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-audio' ) ) { $title = _x( 'Audio', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-chat' ) ) { $title = _x( 'Chats', 'post format archive title' ); } } elseif ( is_post_type_archive() ) { $title = sprintf( __( 'Archives: %s' ), post_type_archive_title( '', false ) ); } elseif ( is_tax() ) { $tax = get_taxonomy( get_queried_object()->taxonomy ); /* translators: 1: Taxonomy singular name, 2: Current taxonomy term */ $title = sprintf( __( '%1$s: %2$s' ), $tax->labels->singular_name, single_term_title( '', false ) ); } else { $title = __( 'Archives' ); } /** * Filter the archive title. * * @since 4.1.0 * * @param string $title Archive title to be displayed. */ return apply_filters( 'get_the_archive_title', $title ); } /** * Display category, tag, or term description. * * @since 4.1.0 * * @see get_the_archive_description() * * @param string $before Optional. Content to prepend to the description. Default empty. * @param string $after Optional. Content to append to the description. Default empty. */ function the_archive_description( $before = '', $after = '' ) { $description = get_the_archive_description(); if ( $description ) { echo $before . $description . $after; } } /** * Retrieve category, tag, or term description. * * @since 4.1.0 * * @return string Archive description. */ function get_the_archive_description() { /** * Filter the archive description. * * @since 4.1.0 * * @see term_description() * * @param string $description Archive description to be displayed. */ return apply_filters( 'get_the_archive_description', term_description() ); } /** * Retrieve archive link content based on predefined or custom code. * * The format can be one of four styles. The 'link' for head element, 'option' * for use in the select element, 'html' for use in list (either ol or ul HTML * elements). Custom content is also supported using the before and after * parameters. * * The 'link' format uses the `` HTML element with the **archives** * relationship. The before and after parameters are not used. The text * parameter is used to describe the link. * * The 'option' format uses the option HTML element for use in select element. * The value is the url parameter and the before and after parameters are used * between the text description. * * The 'html' format, which is the default, uses the li HTML element for use in * the list HTML elements. The before parameter is before the link and the after * parameter is after the closing link. * * The custom format uses the before parameter before the link ('a' HTML * element) and the after parameter after the closing link tag. If the above * three values for the format are not used, then custom format is assumed. * * @since 1.0.0 * * @todo Properly document optional arguments as such * * @param string $url URL to archive. * @param string $text Archive text description. * @param string $format Optional, default is 'html'. Can be 'link', 'option', 'html', or custom. * @param string $before Optional. * @param string $after Optional. * @return string HTML link content for archive. */ function get_archives_link($url, $text, $format = 'html', $before = '', $after = '') { $text = wptexturize($text); $url = esc_url($url); if ('link' == $format) $link_html = "\t\n"; elseif ('option' == $format) $link_html = "\t\n"; elseif ('html' == $format) $link_html = "\t
  • $before$text$after
  • \n"; else // custom $link_html = "\t$before$text$after\n"; /** * Filter the archive link content. * * @since 2.6.0 * * @param string $link_html The archive HTML link content. */ return apply_filters( 'get_archives_link', $link_html ); } /** * Display archive links based on type and format. * * @since 1.2.0 * @since 4.4.0 $post_type arg was added. * * @see get_archives_link() * * @global wpdb $wpdb * @global WP_Locale $wp_locale * * @param string|array $args { * Default archive links arguments. Optional. * * @type string $type Type of archive to retrieve. Accepts 'daily', 'weekly', 'monthly', * 'yearly', 'postbypost', or 'alpha'. Both 'postbypost' and 'alpha' * display the same archive link list as well as post titles instead * of displaying dates. The difference between the two is that 'alpha' * will order by post title and 'postbypost' will order by post date. * Default 'monthly'. * @type string|int $limit Number of links to limit the query to. Default empty (no limit). * @type string $format Format each link should take using the $before and $after args. * Accepts 'link' (`` tag), 'option' (`