septembre 1

Ouvrir les liens dans WP dans un nouvelle onglet

Par défaut, tous les liens d’un site WP s’ouvrent dans le même onglet, on peut lui forcer la main.

Ajouter dans le functions.php du thème

function autoblank($text) {
 $return = str_replace(‘<a’, ‘<a target="_blank"’, $text);
 return $return;
 }
 add_filter(‘the_content’, ‘autoblank’);

Catégorie : WORDPRESS | Commenter
juillet 12

Masquer des sous-menus de l’admin

On peut autoriser un utilisateur à avoir accès au menu « apparence » sans pour autant qu’il puisse gérer les widgets et les options du thèmes.

Dans functions.php :

add_action( 'admin_menu', 'remove_admin_menus' );
add_action( 'admin_menu', 'remove_admin_submenus' );

//Remove top level admin menus
function remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
    remove_menu_page( 'link-manager.php' );
    remove_menu_page( 'tools.php' );
    remove_menu_page( 'plugins.php' );
    remove_menu_page( 'users.php' );
    remove_menu_page( 'options-general.php' );
    remove_menu_page( 'upload.php' );
    remove_menu_page( 'edit.php' );
    remove_menu_page( 'edit.php?post_type=page' );
    remove_menu_page( 'themes.php' );
}

//Remove sub level admin menus
function remove_admin_submenus() {
    remove_submenu_page( 'themes.php', 'theme-editor.php' );
    remove_submenu_page( 'themes.php', 'themes.php' );
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
    remove_submenu_page( 'edit.php', 'post-new.php' );
    remove_submenu_page( 'themes.php', 'nav-menus.php' );
    remove_submenu_page( 'themes.php', 'widgets.php' );
    remove_submenu_page( 'themes.php', 'theme-editor.php' );
    remove_submenu_page( 'plugins.php', 'plugin-editor.php' );
    remove_submenu_page( 'plugins.php', 'plugin-install.php' );
    remove_submenu_page( 'users.php', 'users.php' );
    remove_submenu_page( 'users.php', 'user-new.php' );
    remove_submenu_page( 'upload.php', 'media-new.php' );
    remove_submenu_page( 'options-general.php', 'options-writing.php' );
    remove_submenu_page( 'options-general.php', 'options-discussion.php' );
    remove_submenu_page( 'options-general.php', 'options-reading.php' );
    remove_submenu_page( 'options-general.php', 'options-discussion.php' );
    remove_submenu_page( 'options-general.php', 'options-media.php' );
    remove_submenu_page( 'options-general.php', 'options-privacy.php' );
    remove_submenu_page( 'options-general.php', 'options-permalinks.php' );
    remove_submenu_page( 'index.php', 'update-core.php' );
}

Ce hack utilise les slugs des menu admin de WordPress

Dashboard remove_menu_page(‘index.php’);
Dashboard remove_submenu_page( ‘index.php’, ‘index.php’ );
Updates remove_submenu_page( ‘index.php’, ‘update-core.php’ );

Posts remove_menu_page(‘edit.php’);
Posts remove_submenu_page( ‘edit.php’, ‘edit.php’ );
Add New remove_submenu_page( ‘edit.php’, ‘post-new.php’ );
Categories remove_submenu_page( ‘edit.php’, ‘edit-tags.php?taxonomy=category’ );
Post Tags remove_submenu_page( ‘edit.php’, ‘edit-tags.php?taxonomy=post_tag’ );
Media remove_menu_page(‘upload.php’);
Library remove_submenu_page( ‘upload.php’, ‘upload.php’ );
Add New remove_submenu_page( ‘upload.php’, ‘media-new.php’ );
Links remove_menu_page(‘link-manager.php’);
Links remove_submenu_page( ‘link-manager.php’, ‘link-manager.php’ );
Add New remove_submenu_page( ‘link-manager.php’, ‘link-add.php’ );
Link Categories remove_submenu_page( ‘link-manager.php’, ‘edit-tags.php?taxonomy=link_category’ );
Pages remove_menu_page(‘edit.php?post_type=page’);
Pages remove_submenu_page( ‘edit.php?post_type=page’, ‘edit.php?post_type=page’ );
Add New remove_submenu_page( ‘edit.php?post_type=page’, ‘post-new.php?post_type=page’ );
Comments remove_menu_page(‘edit-comments.php’);

Appearance remove_menu_page(‘themes.php’);
Themes remove_submenu_page( ‘themes.php’, ‘themes.php’ );
Widgets remove_submenu_page( ‘themes.php’, ‘widgets.php’ );
Menus remove_submenu_page( ‘themes.php’, ‘nav-menus.php’ );
Editor remove_submenu_page( ‘themes.php’, ‘theme-editor.php’ );
Plugins remove_menu_page(‘plugins.php’);
Plugins remove_submenu_page( ‘plugins.php’, ‘plugins.php’ );
Add New remove_submenu_page( ‘plugins.php’, ‘plugin-install.php’ );
Editor remove_submenu_page( ‘plugins.php’, ‘plugin-editor.php’ );
Users remove_menu_page(‘users.php’);
Users remove_submenu_page( ‘users.php’, ‘users.php’ );
Add New remove_submenu_page( ‘users.php’, ‘user-new.php’ );
Your Profile remove_submenu_page( ‘users.php’, ‘profile.php’ );
Tools remove_menu_page(‘tools.php’);
Tools remove_submenu_page( ‘tools.php’, ‘tools.php’ );
Import remove_submenu_page( ‘tools.php’, ‘import.php’ );
Export remove_submenu_page( ‘tools.php’, ‘export.php’ );
Settings remove_menu_page(‘options-general.php’);
General remove_submenu_page( ‘options-general.php’, ‘options-general.php’ );
Writing remove_submenu_page( ‘options-general.php’, ‘options-writing.php’ );
Reading remove_submenu_page( ‘options-general.php’, ‘options-reading.php’ );
Discussion remove_submenu_page( ‘options-general.php’, ‘options-discussion.php’ );
Media remove_submenu_page( ‘options-general.php’, ‘options-media.php’ );
Privacy remove_submenu_page( ‘options-general.php’, ‘options-privacy.php’ );
Permalinks remove_submenu_page( ‘options-general.php’, ‘options-permalink.php’ );
lien –
Catégorie : WORDPRESS | Commenter
juillet 12

Ajouter un utilisateur avec un rôle défini

Par défaut, WP dispose d’un nombre limité de rôle attribué aux utilisateurs, chacun avec des possibilités de d’actions précises (voir sur le codex).

Il peut être bien de pouvoir déterminer ce que le propriétaire d’un site aura de le droit de faire. Ce hack, ajoutera des possibilités à partir du rôle éditeur.

Dans le fichier functions.php :

function modify_capabilities() {
	$editor_role = get_role('editor');
	add_role('owner', 'Propriétaire', $editor_role->capabilities);
	$owner_role = get_role('owner');
	$owner_role->add_cap('edit_theme_options');// éditer le thèmes les menus et les widgets
	$owner_role->add_cap('list_users');// lister les utilisateurs
}
add_action('init','modify_capabilities');

edit_theme_options permet de modifier les thèmes, de gérer les widgets mais surtout de gérer les menus. A prioris, on ne peut pas faire en sorte de ne pouvoir gérer QUE les menus. Si on ne veux pas que le « propriétaire » est accès aux thèmes, on doit masquer les sous-menus de l’admin. Pour les opérations inverses, on utilisera remove_cap() pour enlever des capabilities et remove_role() pour supprimer un rôle (les modifications ne disparaissent pas si on supprime le code de functions.php). source

Catégorie : WORDPRESS | Commenter
juillet 4

Un slogan différent à chaque actualisation de la page

Faire que le slogan, dans l’entete de WordPress, affiche une phrase différente aléatoirement et à chaque fois que l’on affiche ou actualise le site.

function random_description() {
    $trans = get_transient( 'blogdescription' ); // Je vais chercher la valeur en cache (nom du transient arbitraire)
    if( $trans === false ): // Si le cache n'existe pas encore ...
        $desc = array(  'BoiteAWeb.fr, la sécurité, c est notre métier.',
                        'BoiteAWeb.fr, sécurisation de sites web.',
                        'BoiteAWeb.fr, création de plugins WordPress.'
                    ); // J'ajoute mes descriptions
        shuffle( $desc ); // Je mélange le tableau
        set_transient( 'blogdescription', $desc[0], 60*60 ); // Transient d'une durée d'1 heure
        return $desc[0]; // Je retourne la première valeur
    else:
        return $trans; // Je retourne la valeur du cache
    endif;
}
add_action('pre_option_blogdescription', 'random_description', 10, 0 );

source : geekpress

Catégorie : WORDPRESS | Commenter
juillet 3

Empécher les modification du code par WordPress

L’éditeur de WordPress, grace à la fonction wptexturize(), à la facheuse de convertir certains caractères par d’autre, notament de remplacer les guillement (touche 3) par des chevrons bien français.

Pour éviter ça (sans plugin) , ajouter ce code dans le fichier « function.php »

remove_filter( ‘the_content’, ‘wptexturize’);

Dans le meme esprit, pour  la modification des sauts de ligne.

Catégorie : WORDPRESS | Commenter
juin 24

Ajouter les boutons Facebook et Twitter

Pour intégrer à la fin des pages et articles (entre 2 barres)  les petits boutons sociaux préférés des Français.

Dans le fichier « functions.php »:

function share_this($content){
    if(!is_feed() && !is_home()) {
        $content .= '
        <hr />
<div class="BoutonsSociaux">
<a href="http://twitter.com/share"
class="twitter-share-button"
data-count="horizontal">Tweet</a>
<script type="text/javascript"
src="http://platform.twitter.com/widgets.js">
</script>
   <p></p>
<div class="facebook-share-button">
<iframe
src="http://www.facebook.com/plugins/like.php?href='.
urlencode(get_permalink($post->ID))
.'&amp;layout=button_count&amp;show_faces=false&amp;width=200&amp;action=like&amp;colorscheme=light&amp;height=21"
scrolling="no" frameborder="0" style="border:none;
overflow:hidden; width:200px; height:21px;"
allowTransparency="true">
</iframe>
</div><!--facebook-->
   <p></p>

</div><!--BoutonsSociaux-->
<hr />
<p></p>
';
    }
    return $content;
}
add_action('the_content', 'share_this');

.

Catégorie : WORDPRESS | Commenter
juin 24

Mettre les 1er caractères d’un post dans la balise META

Par défaut et sans installer d’extensions spécial SEO, on ne peut pas mettre un texte, qui sera en tant que META (repris par Google dans la recherche), pour une page ou un article.

Ce hack, permet d’insérer les 125 caractères du début d’un post.

/* mettre le début du texte ( 125)des articles/pages dans la balise META */
function create_meta_desc() {
    global $post;
if (!is_single()) { return; }
    $meta = strip_tags($post->post_content);
    $meta = strip_shortcodes($post->post_content);
    $meta = str_replace(array("\n", "\r", "\t"), ' ', $meta);
    $meta = substr($meta, 0, 125);
    echo "<meta name='description' content='$meta' />";
}
add_action('wp_head', 'create_meta_desc');

.

Catégorie : WORDPRESS | Commenter