X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/8f374b7233bc2815ccc387e448d208c5434eb961..256a3b381f63716209b3527d0a14442ae570c283:/wp-includes/general-template.php
diff --git a/wp-includes/general-template.php b/wp-includes/general-template.php
index 19726961..7a83579c 100644
--- a/wp-includes/general-template.php
+++ b/wp-includes/general-template.php
@@ -25,7 +25,8 @@ function get_header( $name = null ) {
do_action( 'get_header', $name );
$templates = array();
- if ( isset($name) )
+ $name = (string) $name;
+ if ( '' !== $name )
$templates[] = "header-{$name}.php";
$templates[] = 'header.php';
@@ -54,7 +55,8 @@ function get_footer( $name = null ) {
do_action( 'get_footer', $name );
$templates = array();
- if ( isset($name) )
+ $name = (string) $name;
+ if ( '' !== $name )
$templates[] = "footer-{$name}.php";
$templates[] = 'footer.php';
@@ -83,7 +85,8 @@ function get_sidebar( $name = null ) {
do_action( 'get_sidebar', $name );
$templates = array();
- if ( isset($name) )
+ $name = (string) $name;
+ if ( '' !== $name )
$templates[] = "sidebar-{$name}.php";
$templates[] = 'sidebar.php';
@@ -120,7 +123,8 @@ function get_template_part( $slug, $name = null ) {
do_action( "get_template_part_{$slug}", $slug, $name );
$templates = array();
- if ( isset($name) )
+ $name = (string) $name;
+ if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
@@ -141,33 +145,56 @@ function get_template_part( $slug, $name = null ) {
* form into the sidebar and also by the search widget in WordPress.
*
* There is also an action that is called whenever the function is run called,
- * 'get_search_form'. This can be useful for outputting JavaScript that the
+ * 'pre_get_search_form'. This can be useful for outputting JavaScript that the
* search relies on or various formatting that applies to the beginning of the
* search. To give a few examples of what it can be used for.
*
* @since 2.7.0
+ * @uses apply_filters() Calls 'search_form_format' filter to determine which type to use for the search field.
+ * If set to 'html5', it changes to search input type and adds placeholder text.
+ *
* @param boolean $echo Default to echo and not return the form.
+ * @return string|null String when retrieving, null when displaying or if searchform.php exists.
*/
-function get_search_form($echo = true) {
- do_action( 'get_search_form' );
+function get_search_form( $echo = true ) {
+ do_action( 'pre_get_search_form' );
+
+ $format = current_theme_supports( 'html5', 'search-form' ) ? 'html5' : 'xhtml';
+ $format = apply_filters( 'search_form_format', $format );
- $search_form_template = locate_template('searchform.php');
+ $search_form_template = locate_template( 'searchform.php' );
if ( '' != $search_form_template ) {
- require($search_form_template);
- return;
+ ob_start();
+ require( $search_form_template );
+ $form = ob_get_clean();
+ } else {
+ if ( 'html5' == $format ) {
+ $form = '
';
+ } else {
+ $form = '';
+ }
}
- $form = '';
+ $result = apply_filters( 'get_search_form', $form );
+ if ( null === $result )
+ $result = $form;
if ( $echo )
- echo apply_filters('get_search_form', $form);
+ echo $result;
else
- return apply_filters('get_search_form', $form);
+ return $result;
}
/**
@@ -181,6 +208,7 @@ function get_search_form($echo = true) {
*
* @param string $redirect Optional path to redirect to on login/logout.
* @param boolean $echo Default to echo and not return the link.
+ * @return string|null String when retrieving, null when displaying.
*/
function wp_loginout($redirect = '', $echo = true) {
if ( ! is_user_logged_in() )
@@ -197,14 +225,15 @@ function wp_loginout($redirect = '', $echo = true) {
/**
* Returns the Log Out URL.
*
- * Returns the URL that allows the user to log out of the site
+ * Returns the URL that allows the user to log out of the site.
*
* @since 2.7.0
- * @uses wp_nonce_url() To protect against CSRF
- * @uses site_url() To generate the log in URL
- * @uses apply_filters() calls 'logout_url' hook on final logout url
+ * @uses wp_nonce_url() To protect against CSRF.
+ * @uses site_url() To generate the log out URL.
+ * @uses apply_filters() calls 'logout_url' hook on final logout URL.
*
* @param string $redirect Path to redirect to on logout.
+ * @return string A log out URL.
*/
function wp_logout_url($redirect = '') {
$args = array( 'action' => 'logout' );
@@ -221,15 +250,15 @@ function wp_logout_url($redirect = '') {
/**
* Returns the Log In URL.
*
- * Returns the URL that allows the user to log in to the site
+ * Returns the URL that allows the user to log in to the site.
*
* @since 2.7.0
- * @uses site_url() To generate the log in URL
- * @uses apply_filters() calls 'login_url' hook on final login url
+ * @uses site_url() To generate the log in URL.
+ * @uses apply_filters() calls 'login_url' hook on final login URL.
*
* @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
+ * @return string A log in URL.
*/
function wp_login_url($redirect = '', $force_reauth = false) {
$login_url = site_url('wp-login.php', 'login');
@@ -243,30 +272,46 @@ function wp_login_url($redirect = '', $force_reauth = false) {
return apply_filters('login_url', $login_url, $redirect);
}
+/**
+ * Returns the user registration URL.
+ *
+ * Returns the URL that allows the user to register on the site.
+ *
+ * @since 3.6.0
+ * @uses site_url() To generate the registration URL.
+ * @uses apply_filters() calls 'register_url' hook on final URL.
+ *
+ * @return string
+ */
+function wp_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. By default, it echoes
* the HTML immediately. Pass array('echo'=>false) to return the string instead.
*
* @since 3.0.0
- * @param array $args Configuration options to modify the form output
- * @return Void, or string containing the form
+ * @param array $args Configuration options to modify the form output.
+ * @return string|null String when retrieving, null when displaying.
*/
function wp_login_form( $args = array() ) {
- $defaults = array( 'echo' => true,
- 'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], // Default redirect is back to the current page
- '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' => '',
- 'value_remember' => false, // Set this to true to default the "Remember me" checkbox to checked
- );
+ $defaults = array(
+ 'echo' => true,
+ 'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], // Default redirect is back to the current page
+ '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' => '',
+ 'value_remember' => false, // Set this to true to default the "Remember me" checkbox to checked
+ );
$args = wp_parse_args( $args, apply_filters( 'login_form_defaults', $defaults ) );
$form = '
@@ -274,16 +319,16 @@ function wp_login_form( $args = array() ) {
' . apply_filters( 'login_form_top', '', $args ) . '
' . apply_filters( 'login_form_bottom', '', $args ) . '
@@ -305,6 +350,7 @@ function wp_login_form( $args = array() ) {
* @uses apply_filters() calls 'lostpassword_url' hook on the lostpassword url
*
* @param string $redirect Path to redirect to on login.
+ * @return string Lost password URL.
*/
function wp_lostpassword_url( $redirect = '' ) {
$args = array( 'action' => 'lostpassword' );
@@ -328,12 +374,13 @@ function wp_lostpassword_url( $redirect = '' ) {
* @param string $before Text to output before the link (defaults to
).
* @param string $after Text to output after the link (defaults to
).
* @param boolean $echo Default to echo and not return the link.
+ * @return string|null String when retrieving, null when displaying.
*/
function wp_register( $before = '
', $after = '
', $echo = true ) {
if ( ! is_user_logged_in() ) {
if ( get_option('users_can_register') )
- $link = $before . '' . __('Register') . '' . $after;
+ $link = $before . '' . __('Register') . '' . $after;
else
$link = '';
} else {
@@ -431,7 +478,7 @@ function get_bloginfo( $show = '', $filter = 'raw' ) {
$output = get_feed_link('comments_rss2');
break;
case 'pingback_url':
- $output = get_option('siteurl') .'/xmlrpc.php';
+ $output = site_url( 'xmlrpc.php' );
break;
case 'stylesheet_url':
$output = get_stylesheet_uri();
@@ -491,18 +538,6 @@ function get_bloginfo( $show = '', $filter = 'raw' ) {
return $output;
}
-/**
- * Retrieve the current blog id
- *
- * @since 3.1.0
- *
- * @return int Blog id
- */
-function get_current_blog_id() {
- global $blog_id;
- return absint($blog_id);
-}
-
/**
* Display or retrieve page title for all areas of blog.
*
@@ -542,6 +577,16 @@ function wp_title($sep = '»', $display = true, $seplocation = '') {
$title = single_post_title( '', false );
}
+ // If there's a post type archive
+ if ( is_post_type_archive() ) {
+ $post_type = get_query_var( 'post_type' );
+ if ( is_array( $post_type ) )
+ $post_type = reset( $post_type );
+ $post_type_object = get_post_type_object( $post_type );
+ if ( ! $post_type_object->has_archive )
+ $title = post_type_archive_title( '', false );
+ }
+
// If there's a category or tag
if ( is_category() || is_tag() ) {
$title = single_term_title( '', false );
@@ -550,18 +595,21 @@ function wp_title($sep = '»', $display = true, $seplocation = '') {
// If there's a taxonomy
if ( is_tax() ) {
$term = get_queried_object();
- $tax = get_taxonomy( $term->taxonomy );
- $title = single_term_title( $tax->labels->name . $t_sep, false );
+ if ( $term ) {
+ $tax = get_taxonomy( $term->taxonomy );
+ $title = single_term_title( $tax->labels->name . $t_sep, false );
+ }
}
// If there's an author
if ( is_author() ) {
$author = get_queried_object();
- $title = $author->display_name;
+ if ( $author )
+ $title = $author->display_name;
}
- // If there's a post type archive
- if ( is_post_type_archive() )
+ // Post type archives with has_archive should override terms.
+ if ( is_post_type_archive() && $post_type_object->has_archive )
$title = post_type_archive_title( '', false );
// If there's a month
@@ -642,7 +690,7 @@ function single_post_title($prefix = '', $display = true) {
if ( $display )
echo $prefix . $title;
else
- return $title;
+ return $prefix . $title;
}
/**
@@ -661,13 +709,25 @@ function post_type_archive_title( $prefix = '', $display = true ) {
if ( ! is_post_type_archive() )
return;
- $post_type_obj = get_queried_object();
- $title = apply_filters('post_type_archive_title', $post_type_obj->labels->name );
+ $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 $title;
+ return $prefix . $title;
}
/**
@@ -750,7 +810,7 @@ function single_term_title( $prefix = '', $display = true ) {
if ( $display )
echo $prefix . $term_name;
else
- return $term_name;
+ return $prefix . $term_name;
}
/**
@@ -831,17 +891,16 @@ function single_month_title($prefix = '', $display = true ) {
*/
function get_archives_link($url, $text, $format = 'html', $before = '', $after = '') {
$text = wptexturize($text);
- $title_text = esc_attr($text);
$url = esc_url($url);
if ('link' == $format)
- $link_html = "\t\n";
+ $link_html = "\t\n";
elseif ('option' == $format)
$link_html = "\t\n";
elseif ('html' == $format)
- $link_html = "\t