achille-press/inc/extras.php
jrfnl 9638b7e3c6 Only generate pingback url header tag when relevant.
Rationale:
1. The principle of pingbacks is based on articles. Pingbacks are a special kind of comments and the article being 'pinged-back' has to be identifiable (which they're not on archive pages and the like).
2. WP only registers a ping if it can identify the article which is supposed to have been 'pung'. See: https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/pingback_ping/
3. Pingbacks, like comments, can be disabled on a per article basis.

Therefore, having the pingback url auto-discovery header in place, only makes sense on singular pages where pings are open.
2015-12-04 16:44:38 +01:00

39 lines
953 B
PHP

<?php
/**
* Custom functions that act independently of the theme templates.
*
* Eventually, some of the functionality here could be replaced by core features.
*
* @package _s
*/
/**
* Adds custom classes to the array of body classes.
*
* @param array $classes Classes for the body element.
* @return array
*/
function _s_body_classes( $classes ) {
// Adds a class of group-blog to blogs with more than 1 published author.
if ( is_multi_author() ) {
$classes[] = 'group-blog';
}
// Adds a class of hfeed to non-singular pages.
if ( ! is_singular() ) {
$classes[] = 'hfeed';
}
return $classes;
}
add_filter( 'body_class', '_s_body_classes' );
/**
* Add a pingback url auto-discovery header for singularly identifiable articles.
*/
function _s_pingback_header() {
if ( is_singular() && pings_open() ) {
echo '<link rel="pingback" href="', bloginfo( 'pingback_url' ), '">';
}
}
add_action( 'wp_head', '_s_pingback_header' );