Changer l’URL de la page auteur

Sur WordPress, l’URL par défaut de la page auteur est exemple.com/author/nom. Si vous souhaitez modifier cette url, voici ci-dessous un petit bout de code à intégrer dans votre functions.php. Dans l’exemple ci-dessous, nous remplacerons le terme author par auteur.

add_action('init', 'cng_author_base');
function cng_author_base() {
    global $wp_rewrite;
    $author_slug = 'auteur'; // change slug name
    $wp_rewrite->author_base = $author_slug;
}
source : wprecipes : how to change author url base

Recevoir un e-mail à chaque erreur 404

Rien de pire pour votre référencement que d’avoir des pages en erreur 404 et de passer à côté. Ce morceau de code vous permettra de recevoir un e-mail à chaque fois qu’une page erreur 404 est détectée. Pour se faire, il vous suffit tout simplement de mettre le script suivant dans le fichier 404.php de votre thème. Si votre thème n’en a pas déjà un, il vous suffit de le créer.

<?php // WP 404 ALERTS @ http://wp-mix.com/wordpress-404-email-alerts/

// set status
header("HTTP/1.1 404 Not Found");
header("Status: 404 Not Found");

// site info
$blog  = get_bloginfo('name');
$site  = get_bloginfo('url') . '/';
$email = get_bloginfo('admin_email');

// theme info
if (!empty($_COOKIE["nkthemeswitch" . COOKIEHASH])) {
	$theme = clean($_COOKIE["nkthemeswitch" . COOKIEHASH]);
} else {
	$theme_data = wp_get_theme();
	$theme = clean($theme_data->Name);
}

// referrer
if (isset($_SERVER['HTTP_REFERER'])) {
	$referer = clean($_SERVER['HTTP_REFERER']);
} else {
	$referer = "undefined";
}
// request URI
if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER["HTTP_HOST"])) {
	$request = clean('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
} else {
	$request = "undefined";
}
// query string
if (isset($_SERVER['QUERY_STRING'])) {
	$string = clean($_SERVER['QUERY_STRING']);
} else {
	$string = "undefined";
}
// IP address
if (isset($_SERVER['REMOTE_ADDR'])) {
	$address = clean($_SERVER['REMOTE_ADDR']);
} else {
	$address = "undefined";
}
// user agent
if (isset($_SERVER['HTTP_USER_AGENT'])) {
	$agent = clean($_SERVER['HTTP_USER_AGENT']);
} else {
	$agent = "undefined";
}
// identity
if (isset($_SERVER['REMOTE_IDENT'])) {
	$remote = clean($_SERVER['REMOTE_IDENT']);
} else {
	$remote = "undefined";
}
// log time
$time = clean(date("F jS Y, h:ia", time()));

// sanitize
function clean($string) {
	$string = rtrim($string); 
	$string = ltrim($string); 
	$string = htmlentities($string, ENT_QUOTES); 
	$string = str_replace("n", "<br>", $string);

	if (get_magic_quotes_gpc()) {
		$string = stripslashes($string);
	} 
	return $string;
}

$message = 
	"TIME: "            . $time    . "n" . 
	"*404: "            . $request . "n" . 
	"SITE: "            . $site    . "n" . 
	"THEME: "           . $theme   . "n" . 
	"REFERRER: "        . $referer . "n" . 
	"QUERY STRING: "    . $string  . "n" . 
	"REMOTE ADDRESS: "  . $address . "n" . 
	"REMOTE IDENTITY: " . $remote  . "n" . 
	"USER AGENT: "      . $agent   . "nnn";

mail($email, "404 Alert: " . $blog . " [" . $theme . "]", $message, "From: $email"); 

?>
source : Wp Recipes – Email Alert for 404’s

Exclure automatiquement les mots courts de vos URL

Comme vous le savez sûrement le permalien d’un article reprend automatiquement le titre de cet article (cela dépend de votre paramétrage). Pour ceux qui n’ont pas le temps de modifier à chaque fois ce permalien, voici un code qui va enlever automatiquement les mots courts souvent inutiles (le-la-les-du-des-ce-ces-etc.) de votre permalien.

Après avoir intégré ce code dans le fichier functions.php de votre site internet, wordpress exclura les mots de moins de 3 caractères de vos URL.

add_filter('sanitize_title', 'remove_short_words');
function remove_short_words($slug) {
    if (!is_admin()) return $slug;
    $slug = explode('-', $slug);
    foreach ($slug as $k => $word) {
        if (strlen($word) < 3) {
            unset($slug[$k]);
        }
    }
    return implode('-', $slug);
}
source : WP Recipes – Automatically remove short words from the URL

 Forcer le RSS WordPress à rafraîchir plus souvent

WordPress dispose d’un widget intégré lui permettant d’afficher un RSS sur votre blog. Si vous souhaitez que ce widget se rafraîchisse plus souvent, voici ci-dessous un code à intégrer dans votre function.php.

add_filter( 'wp_feed_cache_transient_lifetime', create_function('$a', 'return 600;') );
source : WP Recipes – How to force the RSS Widget to refresh more often

 Permettre l’insertion de pdf dans vos articles

Par défaut, WordPress vous permet d’insérer des images, du son et des vidéos. Si vous souhaitez pouvoir insérer facilement un fichier pdf, vous aurez besoin d’ajouter une option pour filtrer les fichier .pdf dans votre bibliothèque de médias. Ce code est à ajouter dans votre fichier functions.php.

function modify_post_mime_types( $post_mime_types ) {

	// select the mime type, here: 'application/pdf'
	// then we define an array with the label values

	$post_mime_types['application/pdf'] = array( __( 'PDFs' ),
 __( 'Manage PDFs' ), _n_noop( 'PDF <span>(%s)</span>', 'PDFs <span>(%s)</span>' ) );

	// then we return the $post_mime_types variable
	return $post_mime_types;

}

// Add Filter Hook
add_filter( 'post_mime_types', 'modify_post_mime_types' );
L’auteur de ce code précise que l’on peut très bien l’utiliser pour filtrer d’autres extensions comme .avi, .mov, etc.
Source : WP Recipes – How to add .pdf support to the WordPress media manager

Ajouter un bouton « Supprimer » dans la barre d’outil WordPress

Lorsque vous visitez votre site internet en tant qu’administrateur, vous disposez d’une barre d’outil WordPress Admin dans le haut de la page. cette barre vous permet d’effectuer plusieurs actions telles que créer ou éditer un article. Le code ci-dessous va vous permettre d’ajouter un bouton « supprimer » vous permettant de supprimer vos articles sans devoir passer par l’administration et la liste d’article. Ce code est à intégrer dans le fichier functions.php.

<?php
function fb_add_admin_bar_trash_menu() {
  global $wp_admin_bar;
  if ( !is_super_admin() || !is_admin_bar_showing() )
      return;
  $current_object = get_queried_object();
  if ( empty($current_object) )
      return;
  if ( !empty( $current_object->post_type ) &&
     ( $post_type_object = get_post_type_object( $current_object->post_type ) ) &&
     current_user_can( $post_type_object->cap->edit_post, $current_object->ID )
  ) {
    $wp_admin_bar->add_menu(
        array( 'id' => 'delete',
            'title' => __('Move to Trash'),
            'href' => get_delete_post_link($current_object->term_id)
        )
    );
  }
}
add_action( 'admin_bar_menu', 'fb_add_admin_bar_trash_menu', 35 );
?>
Source : WP Recipes – How to add a “delete” button to WordPress admin bar

 Paginer votre WordPress sans plugin

Depuis la version 2.1 de WordPress il est possible de paginer vos pages (c’est-à-dire ne plus avoir que le « précédent » et « suivant ») sans plugin. Pour cela il nous faut utiliser la fonction paginate_links très simple à utiliser. Il vous suffit simplement de coller le code suivant à l’endroit où vous souhaitez insérer votre pagination.

global $wp_query;
$total = $wp_query->max_num_pages;
// only bother with the rest if we have more than 1 page!
if ( $total > 1 )  {
     // get the current page
     if ( !$current_page = get_query_var('paged') )
          $current_page = 1;
     // structure of "format" depends on whether we're using pretty permalinks
     $format = empty( get_option('permalink_structure') ) ? '&page=%#%' : 'page/%#%/';
     echo paginate_links(array(
          'base' => get_pagenum_link(1) . '%_%',
          'format' => $format,
          'current' => $current_page,
          'total' => $total,
          'mid_size' => 4,
          'type' => 'list'
     ));
Source : WP Recipes – Easy WordPress pagination without plugins