Meilleure collection de code pour votre fichier 'functions.php'
-
-
Veuillez également ajouter vos anciennes découvertesexistantes.Pleae add your old, existing findings as well.
- 0
- 2010-09-09
- hakre
-
Salut * @ NetConstructor *: Je suispréoccupépar cette question car c'est une question "Liste de X" que lesgens de StackExchangenous ont demandé de rechercher: http://meta.stackexchange.com/questions/57226/should-we-have-a-list-of-x-close-reason Magrandepréoccupationest que lorsqueje pense à votre question,je peuxenvisager unnombrepresqueinfini de réponseset entant quetel,je crains que cette questionne setraduisepar une collection aléatoireréponsesmais rien de définitif.Je veux obtenir les opinions des autres à ce sujet avant de (voterpour) lafermer,mais commeje ne veuxpas être autoritaire,j'aijuste despréoccupations.Hi *@NetConstructor*: I'm concerned about this question because it's a "List of X" question the StackExchange people have told us to look out for: http://meta.stackexchange.com/questions/57226/should-we-have-a-list-of-x-close-reason My big concern is when I think of your question I can envision an almost infinite number of answers and as such I'm concerned that this question will result in a collection of random answers but nothing definitive. I want to get other's opinions on this before I (vote to) close it though as I don't want to be heavy handed, I just have concerns.
- 1
- 2010-09-09
- MikeSchinkel
-
Mon voteest soitfermé,soit rendu wiki communautaireMy vote is either close or make community wiki
- 0
- 2010-09-09
- Chris_O
-
Étant donné que les 5premières réponses ont étéfourniespar le POet que la question sembleplus orientée vers la collecte d'un éventail de réponsesplutôt que d'une réponse uniqueet définitive,cela devrait être un wiki communautaire.Considering the first 5 answers were by the OP and the question seems more geared at collecting an array of responses rather than a single, definitive answer, this should be a community wiki.
- 13
- 2010-09-09
- EAMann
-
semble que l'onne peutpas simplementmodifier une question dans un wiki.Est-ce correct?seems that one can not just modify a question into a wiki. Is this correct?
- 0
- 2010-09-09
- NetConstructor.com
-
Néanmoins,c'est utile (j'aitrouvé 2extraits dontje vaisfaire un usageintensif) si c'est un wiki communautaireet qu'ilfaut recommencer àneufpour lefairepeut-êtrepouvons-nous simplement déplacer le contenuici?Nonetheless this is useful (I have found 2 snippets I will be making heavy use of)if it's to be a community wiki and has to be started fresh to do that maybe we can just move the stuff here there?
- 1
- 2010-09-09
- Ashley G
-
@ NetConstructor.com ... J'ai converti la questionen wiki lorsquej'ai écritmon dernier commentaire.Désolé si cela a causé de la confusion.Normalement,vous (entant qu'OP)pouveztransformer une questionen wiki àtoutmoment.@NetConstructor.com ... I converted the question into a wiki when I wrote my last comment. Sorry if that caused any confusion. Normally, you (as the OP) can turn a question into a wiki at any time.
- 0
- 2010-09-10
- EAMann
-
@EAMannmerci ... Je cherchais cette optionmaisje ne savaispas oùelle setrouvait.Peut-être qu'après l'avoir converti,je n'aiplus vu l'option?@EAMann thanks... I was looking for that option but was not sure where it was located. Maybe after you converted it I just did not see the option anymore?
- 0
- 2010-09-10
- NetConstructor.com
-
*@NetConstructor.com* - Bingo.Unefois converti,ilest converti ... l'optionest définieet disparaît de lapage.*@NetConstructor.com* - Bingo. Once it's converted, it's converted ... the option is set and disappears from the page.
- 0
- 2010-09-10
- EAMann
-
Je considérerais cemauvais styleet préférerais lesplugins.a) Ils sont construitspar des développeurs dédiésb)ils sontentretenuset facilement améliorés.Pour lespetitsextraitspersonnalisés,je recommande leplugin Shortcode Exec PHP qui offre unmoyentrèspropre -et portable - depersonnaliser votre Wordpress.I would consider this bad style and prefer plugins. a) They are built by dedicated deveoplers b) they are maintained and easily upgraded. For little custom snippets I recommend the plugin Shortcode Exec PHP which yields a very clean -- and portable -- way to customize your Wordpress.
- 0
- 2010-11-10
- Raphael
-
bien qu'intéressant,je pense que laplupart desgens conviendront que lorsque vous développez desthèmes,vous voulez que les choses soient localisées dans unfichierfunctions.phpwhile interesting I believe most people would agree that when your developing themes you want things localized within a functions.php file
- 0
- 2010-11-24
- NetConstructor.com
-
@NetConstructor - Si vous allez éditer d'autresentrées,pouvez-vous s'il vousplaîtfaire attentionen lefaisant,vous avezgâché l'indentation dansmonmessage,je faistoujours uneffortpourmaintenir l'indentationpour la lisibilité.J'apprécierais également si vouspouviezprendre letemps d'expliquer lesmodifications que vous apportez (jene vois aucune raisonpour laquelle vousmodifiezmonentrée -et iln'y avaitpas de résumé demodification).@NetConstructor - If you're going to edit others entries, can you please take care when doing so, you spoiled the indentation in my posting, i always make an effort to maintain indentation for readability. I'd also appreciate it if you could take the time to explain edits you make(i couldn't see any reason for your to edit my entry - and there was no edit summary).
- 0
- 2011-01-28
- t31os
-
@t31os - Je l'aimodifiépour legarder cohérent avectoutes lesentrées@t31os -- I edited it to keep it consistent with all of the entries
- 0
- 2011-02-07
- NetConstructor.com
-
Toutes les réponsesnon liées à unthème doivent être supprimées.Cefilest unbonexemple demauvaisespratiques de codage.All answers not related to a theme should be removed. This thread is a good example for bad coding practices.
- 17
- 2011-06-13
- fuxia
-
Je suisen désaccord.La questionn'étaitpas liée authème.Toutes lesfonctions applicables,lesmods PHP sont lesbienvenuset les utilisateurs doivent voteren conséquence.I would have to disagree. Question was not related to the theme. All applicable functions.PHP mods are welcome and users should up/down vote accordingly.
- 1
- 2011-06-14
- NetConstructor.com
-
Ilestintéressant denoter qu'iln'estmentionnénullepart que lefichierfunctions.phpest celui de votre répertoire dethème,ce qui conduit à une confusion,comme celle-ci: http://wordpress.stackexchange.com/questions/25341/error-after-editing-functions-phpIt's interesting that it's not mentioned anywhere that the functions.php file is the one in your theme directory, leading to confusion, such as this: http://wordpress.stackexchange.com/questions/25341/error-after-editing-functions-php
- 1
- 2011-08-09
- scribu
-
Jepense qu'il seraitpréférable d'encourager lesgens à [créer unplugin defonctionnalitéspersonnalisées] (http://www.doitwithwp.com/create-functions-plugin/) au lieu d'utiliser lesfunctions.php de leurthèmeI think it'd be better to encourage people to [create a custom functionality plugin](http://www.doitwithwp.com/create-functions-plugin/) instead of using their theme's functions.php
- 17
- 2012-01-16
- Ian Dunn
-
@Cor van Noorloos l'utilisation du statut de wiki communautaire avait été considérablement réduiteet découragéepar le réseau.Entermes simples,"cen'estpas vraiment unbon choixpour le contrôle qualité,mais c'est un wiki communautaire!"l'excusene voleplus.Les réponsesici sont devenues désordonnéeset malentretenues,visitées uniquementpour unfacteur wow/fun.Il y avaiteubeaucoup demouvement danstout le réseaupour écarter detelles questions.@Cor van Noorloos the use of community wiki status had been greatly reduced and discouraged by network. Simply put "it's not really good fit for QA, but it's community wiki!" excuse doesn't fly anymore. Answers here became disorderly and poorly maintained glob, only visited for wow/fun factor. There had been a lot of movement all over network to squash questions like this.
- 0
- 2012-02-19
- Rarst
-
En ce qui concerne lafermeture de ce "wiki" spécifique,je votepour sa réouverture.Detoute évidence,cet article wikiesttrèspopulaire,démontrépar lefait qu'il a 30000 vues,ce quiesttroisfois lenombre de TOUTE autre question ou wiki sur ce siteet le sujet lui-même a été voté 119fois,ce quiest le double detoute autre question.ou sujet.Si vous acceptez sa valeur,veuillez voterpour la réouvriren cliquant sur le lien «rouvrir».In regards to the closing of this specific "wiki" I vote that this be reopend. Obviously this wiki post is highly popular demonstrated by the fact that it has 30,000 views which is three times the amount of ANY other question or wiki on this site and the topic itself has been up-voted 119 times which is double that of any other question or topic. If you agree in its value please vote to have it reopen by clicking the "reopen" link.
- 1
- 2012-02-20
- NetConstructor.com
-
@ NetConstructor.com Lenombrepur depages vuesn'estpas unindicateur de qualité.Nous devrionsencourager les questions spécifiques avec des réponses spécifiqueset debonnespratiques de codage.Cefilest le contraire.@NetConstructor.com The pure number of page views is not an indicator for quality. We should encourage specific questions with specific answers and good coding practices. This thread is the opposite.
- 3
- 2012-02-22
- fuxia
-
@toscho - c'estprécisémentpourquoi cela a été configuréen tant que wikiet donc cemessageestparfaitement valide.Lepoint quej'aifait concernant lespages vues a étémentionnéparce que ce sujetest évidemment 3foispluspopulaire quen'importe quel autre sujet sur ce site.Ce site Webestpopulaireen particulieren raison de questions comme celles-ciet ilest doncinsensé de lefermer.Jene pensepas que l'onpuisseen débattre àmoins que l'intérêt de la communautépour des sujets comme ceux-cin'ait aucune valeurpour les administrateurs.@toscho - that is specifically why this was setup as a wiki and therefore this post is perfectly valid. The point I made in respect to page views was mentioned because this topic obviously is 3X as popular as any other topic on this site. This website is popular specifically due to questions like these and therefore it makes no sense to close it. I don't think one can debate this unless community interest in topics like these has no value towards admins.
- 0
- 2012-02-24
- NetConstructor.com
-
J'ajouterai un autre commentaireicibasé sur quelquesmaths queje viens defaire.Il y amoins de 790 utilisateursenregistrés sur ce site avec unenote de "1" ouplus.En supposant que cegroupe d'individus représente ceux qui votentet/ou contribuent réellement à ce site (et 790 étantincroyablementjuste),alors 117personnes qui ont voté cette question représentent 14% + detous les utilisateurs actifs qui onttrouvé ce sujet utile.Votezpour rouvrir le sujet s'il vousplaît.I will add one more comment on here based off some math I just did. There are less than 790 registered users on this website with a rating of "1" or more. Assuming this pool of individuals represents those who actually vote and/or contribute to this site (and 790 being incredibly fair) then 117 people who voted this question up represents 14%+ of all active users who found this topic useful. Vote to reopen the topic please.
- 0
- 2012-02-24
- NetConstructor.com
-
@ NetConstructor.com Discutez-en sur [Meta] (http://meta.wordpress.stackexchange.com/) où lesgenspeuventmieux voir vos arguments.:)@NetConstructor.com Discuss it on [Meta](http://meta.wordpress.stackexchange.com/) where people can see your arguments better. :)
- 6
- 2012-02-24
- fuxia
-
102 réponses
- votes
-
- 2010-09-10
Activer lafonction d'administrationmasquée affichant Tous lesparamètres du site
Testé sur: WordPress 3.1 RC3
Cepetit bout de codefait quelque chose d'assez cool.Il ajoutera une option supplémentaire à votremenu deparamètres avec un lien vers «tous lesparamètres».qui vousmontrera une liste complète detous lesparamètres que vous avez dans votrebase de données liés à votre site WordPress.Le code ci-dessous rendra ce lien visible uniquementpar un utilisateur administrateuret lemasquerapourtous les autres utilisateurs.
// CUSTOM ADMIN MENU LINK FOR ALL SETTINGS function all_settings_link() { add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php'); } add_action('admin_menu', 'all_settings_link');
Enable Hidden Administration Feature displaying All Site Settings
Tested on: WordPress 3.1 RC3
This little piece of code does something pretty cool. It will add an additional option to your settings menu with a link to "all settings" which will show you a complete list of all the settings you have within your database related to your WordPress site. The code below will only made this link visible to an administrator user and hide it for all other users.
// CUSTOM ADMIN MENU LINK FOR ALL SETTINGS function all_settings_link() { add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php'); } add_action('admin_menu', 'all_settings_link');
-
Fantastiquepour le développement!J'utilisefréquemment latable des optionspour stocker les versions debase de données demesplug-ins ... utiliserphpMyAdminpour réinitialiser une ancienne version debase de donnéespourtester un script demise àniveauest une douleur ... cela rendra les choses **tellementplusfaciles **!!!Fantastic for development! I use the options table frequently to store DB versions for my plug-ins ... using phpMyAdmin to reset to an old DB version to test an upgrade script is a pain ... this will make it **so much easier**!!!
- 0
- 2010-09-15
- EAMann
-
Vouspouvez également accéder à lamêmepage d'options (unefois connecté)en allant sur votre site/wp-admin/options.phpYou can also get to the same options page (when logged in) by going to yoursite/wp-admin/options.php
- 3
- 2015-10-09
- j08691
-
- 2010-09-10
Modifier le logo de connexion & amp; Lien URL de l'image
Testé sur: WordPress 3.0.1
Ce code vouspermettra demodifierfacilement le logo de lapage de connexion WordPress ainsi que le lien hrefet letexte dutitre de ce logo.
add_filter( 'login_headerurl', 'namespace_login_headerurl' ); /** * Replaces the login header logo URL * * @param $url */ function namespace_login_headerurl( $url ) { $url = home_url( '/' ); return $url; } add_filter( 'login_headertitle', 'namespace_login_headertitle' ); /** * Replaces the login header logo title * * @param $title */ function namespace_login_headertitle( $title ) { $title = get_bloginfo( 'name' ); return $title; } add_action( 'login_head', 'namespace_login_style' ); /** * Replaces the login header logo */ function namespace_login_style() { echo '<style>.login h1 a { background-image: url( ' . get_template_directory_uri() . '/images/logo.png ) !important; }</style>'; }
MODIFIER: Si vous souhaitez utiliser le logo du sitepour remplacer le logo de connexion,vouspouvez utiliser ce qui suitpourextraire dynamiquement cesinformations (testé sur WP3.5 ) :
function namespace_login_style() { if( function_exists('get_custom_header') ){ $width = get_custom_header()->width; $height = get_custom_header()->height; } else { $width = HEADER_IMAGE_WIDTH; $height = HEADER_IMAGE_HEIGHT; } echo '<style>'.PHP_EOL; echo '.login h1 a {'.PHP_EOL; echo ' background-image: url( '; header_image(); echo ' ) !important; '.PHP_EOL; echo ' width: '.$width.'px !important;'.PHP_EOL; echo ' height: '.$height.'px !important;'.PHP_EOL; echo ' background-size: '.$width.'px '.$height.'px !important;'.PHP_EOL; echo '}'.PHP_EOL; echo '</style>'.PHP_EOL; }
Modify the Login Logo & Image URL Link
Tested on: WordPress 3.0.1
This code will allow you to easily modify the WordPress Login page Logo as well as the href link and title text of this logo.
add_filter( 'login_headerurl', 'namespace_login_headerurl' ); /** * Replaces the login header logo URL * * @param $url */ function namespace_login_headerurl( $url ) { $url = home_url( '/' ); return $url; } add_filter( 'login_headertitle', 'namespace_login_headertitle' ); /** * Replaces the login header logo title * * @param $title */ function namespace_login_headertitle( $title ) { $title = get_bloginfo( 'name' ); return $title; } add_action( 'login_head', 'namespace_login_style' ); /** * Replaces the login header logo */ function namespace_login_style() { echo '<style>.login h1 a { background-image: url( ' . get_template_directory_uri() . '/images/logo.png ) !important; }</style>'; }
EDIT: If you want to use the site logo to replace the login logo, you can use the following to dynamically pull that information (tested on WP3.5):
function namespace_login_style() { if( function_exists('get_custom_header') ){ $width = get_custom_header()->width; $height = get_custom_header()->height; } else { $width = HEADER_IMAGE_WIDTH; $height = HEADER_IMAGE_HEIGHT; } echo '<style>'.PHP_EOL; echo '.login h1 a {'.PHP_EOL; echo ' background-image: url( '; header_image(); echo ' ) !important; '.PHP_EOL; echo ' width: '.$width.'px !important;'.PHP_EOL; echo ' height: '.$height.'px !important;'.PHP_EOL; echo ' background-size: '.$width.'px '.$height.'px !important;'.PHP_EOL; echo '}'.PHP_EOL; echo '</style>'.PHP_EOL; }
-
- 2010-11-09
Incluez destypes depublicationpersonnalisés dans les résultats de recherche.
// MAKE CUSTOM POST TYPES SEARCHABLE function searchAll( $query ) { if ( $query->is_search ) { $query->set( 'post_type', array( 'site', 'plugin', 'theme', 'person' )); } return $query; } add_filter( 'the_search_query', 'searchAll' );
Par défaut,ajoutez vostypes d'articlespersonnalisés auflux RSSprincipal de votre site.
// ADD CUSTOM POST TYPES TO THE DEFAULT RSS FEED function custom_feed_request( $vars ) { if (isset($vars['feed']) && !isset($vars['post_type'])) $vars['post_type'] = array( 'post', 'site', 'plugin', 'theme', 'person' ); return $vars; } add_filter( 'request', 'custom_feed_request' );
Inclure destypes demessagespersonnalisés dans "En cemoment" widget detableau debord d'administration
Celainclura vostypes depublicationspersonnaliséset lenombre depublicationspour chaquetype dans la section "En cemoment" widget detableau debord.
// ADD CUSTOM POST TYPES TO THE 'RIGHT NOW' DASHBOARD WIDGET function wph_right_now_content_table_end() { $args = array( 'public' => true , '_builtin' => false ); $output = 'object'; $operator = 'and'; $post_types = get_post_types( $args , $output , $operator ); foreach( $post_types as $post_type ) { $num_posts = wp_count_posts( $post_type->name ); $num = number_format_i18n( $num_posts->publish ); $text = _n( $post_type->labels->singular_name, $post_type->labels->name , intval( $num_posts->publish ) ); if ( current_user_can( 'edit_posts' ) ) { $num = "<a href='edit.php?post_type=$post_type->name'>$num</a>"; $text = "<a href='edit.php?post_type=$post_type->name'>$text</a>"; } echo '<tr><td class="first num b b-' . $post_type->name . '">' . $num . '</td>'; echo '<td class="text t ' . $post_type->name . '">' . $text . '</td></tr>'; } $taxonomies = get_taxonomies( $args , $output , $operator ); foreach( $taxonomies as $taxonomy ) { $num_terms = wp_count_terms( $taxonomy->name ); $num = number_format_i18n( $num_terms ); $text = _n( $taxonomy->labels->singular_name, $taxonomy->labels->name , intval( $num_terms )); if ( current_user_can( 'manage_categories' ) ) { $num = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num</a>"; $text = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$text</a>"; } echo '<tr><td class="first b b-' . $taxonomy->name . '">' . $num . '</td>'; echo '<td class="t ' . $taxonomy->name . '">' . $text . '</td></tr>'; } } add_action( 'right_now_content_table_end' , 'wph_right_now_content_table_end' );
Include custom post types in the search results.
// MAKE CUSTOM POST TYPES SEARCHABLE function searchAll( $query ) { if ( $query->is_search ) { $query->set( 'post_type', array( 'site', 'plugin', 'theme', 'person' )); } return $query; } add_filter( 'the_search_query', 'searchAll' );
Add your custom post types to your sites main RSS feed by default.
// ADD CUSTOM POST TYPES TO THE DEFAULT RSS FEED function custom_feed_request( $vars ) { if (isset($vars['feed']) && !isset($vars['post_type'])) $vars['post_type'] = array( 'post', 'site', 'plugin', 'theme', 'person' ); return $vars; } add_filter( 'request', 'custom_feed_request' );
Include custom post types in "Right Now" admin dashboard widget
This will include your custom post types and the post counts for each type in the "Right Now" dashboard widget.
// ADD CUSTOM POST TYPES TO THE 'RIGHT NOW' DASHBOARD WIDGET function wph_right_now_content_table_end() { $args = array( 'public' => true , '_builtin' => false ); $output = 'object'; $operator = 'and'; $post_types = get_post_types( $args , $output , $operator ); foreach( $post_types as $post_type ) { $num_posts = wp_count_posts( $post_type->name ); $num = number_format_i18n( $num_posts->publish ); $text = _n( $post_type->labels->singular_name, $post_type->labels->name , intval( $num_posts->publish ) ); if ( current_user_can( 'edit_posts' ) ) { $num = "<a href='edit.php?post_type=$post_type->name'>$num</a>"; $text = "<a href='edit.php?post_type=$post_type->name'>$text</a>"; } echo '<tr><td class="first num b b-' . $post_type->name . '">' . $num . '</td>'; echo '<td class="text t ' . $post_type->name . '">' . $text . '</td></tr>'; } $taxonomies = get_taxonomies( $args , $output , $operator ); foreach( $taxonomies as $taxonomy ) { $num_terms = wp_count_terms( $taxonomy->name ); $num = number_format_i18n( $num_terms ); $text = _n( $taxonomy->labels->singular_name, $taxonomy->labels->name , intval( $num_terms )); if ( current_user_can( 'manage_categories' ) ) { $num = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num</a>"; $text = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$text</a>"; } echo '<tr><td class="first b b-' . $taxonomy->name . '">' . $num . '</td>'; echo '<td class="t ' . $taxonomy->name . '">' . $text . '</td></tr>'; } } add_action( 'right_now_content_table_end' , 'wph_right_now_content_table_end' );
-
Concernant le dernierextrait de cette réponse.C'est unexcellent ajout carje les ajoutaismanuellementpour chaquetype depublication.Le seulproblème quej'ai avec ceciest qu'il ajoute les données après l'entrée "catégorie"et "étiquette"par défaut.Pourriez-vousmettre àjour votre réponsepour déplacer les "catégories" ou "balises"par défaut vers lebas ou les supprimer afin qu'ellespuissent être ajoutéesmanuellement?Regarding the last snippet to this answer. This is a great addition as I was adding these manually for each post type. The only issue I have with this is that it adds the data after the default "category" and "tag" entry. Could you update your answer to move the default "category" or "tag" ones down or remove them so that they can be added manually?
- 0
- 2011-02-22
- NetConstructor.com
-
@ NetConstructor.com Jene pensepas avoir compris votre demande.Sije lefais,alorsje pense que ce serait unpeuplus difficile àfaireet queje n'aipas vraiment letemps de comprendre comment lefaire.@NetConstructor.com I don't think I understand your request. If I do, then I think it would be a bit more of a difficult thing to do, and don't really have time right now to figure out how to do it.
- 0
- 2011-02-23
- jaredwilli
-
Incluez destypes depublicationpersonnalisés dans les résultats de la recherche -je suppose que vouspouvezmaintenant lefaire avec leparamètre `exclude_from_search` de` register_post_type` ...Include custom post types in the search results - I guess, now you can do this with `exclude_from_search` param of `register_post_type`...
- 0
- 2013-12-16
- Krzysiek Dróżdż
-
- 2010-09-09
Supprimer lanotification demise àjourpourtous les utilisateurs à l'exception de l'utilisateur ADMIN
Testé sur: WordPress 3.0.1
Ce codegarantira qu'aucun utilisateur autre que & quot; admin & quot; sontnotifiéspar WordPress lorsque desmises àjour sont disponibles.
// REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN global $user_login; get_currentuserinfo(); if ($user_login !== "admin") { // Change admin to the username that gets the updates add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); }
Versionmodifiéepour afficher uniquement lanotification demise àjourpour les utilisateurs administrateurs (par opposition uniquement à l'utilisateur "admin"):
// REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN global $user_login; get_currentuserinfo(); if (!current_user_can('update_plugins')) { // Checks to see if current user can update plugins add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); }
Remove Update Notification for all users except ADMIN User
Tested on: WordPress 3.0.1
This code will ensures that no users other than "admin" are notified by WordPress when updates are available..
// REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN global $user_login; get_currentuserinfo(); if ($user_login !== "admin") { // Change admin to the username that gets the updates add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); }
Changed version to only show update notification for admin users (as opposed to just the user 'admin'):
// REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN global $user_login; get_currentuserinfo(); if (!current_user_can('update_plugins')) { // Checks to see if current user can update plugins add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); }
-
C'est loin d'êtreidéal.Celane fonctionnera que si la connexion de l'administrateuresttoujours «admin»par défaut,ce quine devraitpas êtrepour des raisons de sécurité.Au lieu de cela,vous devriez vérifier une capacité spécifique que vous voulez que lesgens doivent voir lesmessages.This is far less than ideal. It will only work if the admin's login is still the default 'admin', which it shoudln't be for security reasons. Instead you should check for a specific capability that you want people to have to see messages.
- 8
- 2010-09-11
- jerclarke
-
C'est à dire.if (! current_user_can ('manage_options')) {... add_filter ...} - Désolépour le double commentaire,j'ai oublié quefrapperenter soumet des commentaires)I.e. if (!current_user_can('manage_options')) {...add_filter...} -- Sorry about double comment, I forgot that hitting enter submits comments)
- 1
- 2010-09-11
- jerclarke
-
C'estpourquoij'ai ajouté le commentaire au code où vouspouvezmodifier lenom d'utilisateur de l'administrateur.Commentpourriez-vous l'améliorer/le réécrire?Thats why I added the comment to the code where you can change the admin username. How would you improve/rewrite it?
- 0
- 2010-09-12
- NetConstructor.com
-
Lemeilleurmoyenest de supprimer lesglobal $ user_loginet get_currentuserinfo ()et d'utiliser à laplace current_user_can dans votre clauseif.C'est seulement 1 ligne au lieu de 3et c'est lamanière standard.Vouspouvez vérifier la capacité spécifique qui seraitnécessairepour AGIR sur lesmessages,dans ce cas,il y a 'update_core'et 'update_plugins'.The best way is to remove the global $user_login and get_currentuserinfo() and instead use current_user_can in your if clause. It's only 1 line instead of 3 and its the standard way. You can check for the specific capability that would be needed to ACT on the messages, in this case there's 'update_core' and 'update_plugins'.
- 0
- 2010-09-12
- jerclarke
-
donc:if (! current_user_can ('update_plugins')) {/* SUPPRIMER LES MESSAGES */}so: if (!current_user_can('update_plugins')) {/*REMOVE MESSAGES*/}
- 2
- 2010-09-12
- jerclarke
-
donc le code complet ressemblerait à quoi?so the full code would look like what?
- 0
- 2010-09-13
- NetConstructor.com
-
@Jeremy Clarke,alors ce code serait-il labonnefaçon defaire les choses?Mais si vous vouliez simplement autoriser unnom d'utilisateur spécifique à recevoir lesnotifications,le code ci-dessus serait-il lemeilleurmoyen? if (! current_user_can ('update_plugins')) { add_action ('init',create_function ('$ a',"remove_action ('init','wp_version_check');"),2); add_filter ('pre_option_update_core',create_function ('$ a',"returnnull;")); }@Jeremy Clarke so would this code then be the correct way of doing things? But, if you just wanted to allow a specific username to get the notices would the code above be the best way? if (!current_user_can('update_plugins')) { add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" )); }
- 0
- 2010-09-17
- NetConstructor.com
-
Si vous vouliez vérifier unnom d'utilisateur spécifique,je suppose que votre code dans la réponse originaleest acceptable,bien qu'ilpuisse y avoir unmoyen légèrementplusefficace.Le code complet utilisantma solution ressemblerait à ce que vous avez dans votre dernier commentaire.C'est lamême chose que votre réponsemais avec la vérification current_user_can () au lieu de $ user_login!=='admin'.If you wanted to check for a specific user name I suppose your code in the original answer is acceptable, though there may be a slightly more effective way. The full code using my solution would look like what you have in your last comment. It's the same as your answer but with the current_user_can() check instead of the $user_login !== 'admin'.
- 0
- 2010-09-22
- jerclarke
-
J'aimodifié la réponseet ajouté la version qui utilise current_user_can ('update_plugins')I edited the answer and added the version that uses current_user_can('update_plugins')
- 0
- 2010-09-27
- Travis Northcutt
-
Cette logique doit aller à l'intérieur dunoyauThis logic must go inside the core
- 0
- 2010-12-27
- Atif Mohammed Ameenuddin
-
J'aijusteessayé les codes.Maisj'obtiens unepage d'erreur sij'utilise les codes.Mêmeproblème avec les deux codesI just tried the codes. But I am getting some error page if I use the codes. Same problem with both the codes
- 0
- 2011-06-29
- user391
-
Jepense que cetextrait aperdu de sapertinence aufil des ans.Dans WordPress réel,l'administrateurest le seul à voir lesnotifications demise àjour.I think this snippet lost it's relevance over the years. In actual WordPress the administrator is the only one who is seeing update notifications.
- 0
- 2014-08-28
- netblognet
-
- 2010-09-16
Chargement dejQuery àpartir du CDN Google
<₹ Testé sur: WordPress 3.0.1
// Even more smart jQuery inclusion :) add_action( 'init', 'jquery_register' ); // Register from Google and for footer function jquery_register() { if ( !is_admin() ) { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', ( 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' ), false, null, true ); wp_enqueue_script( 'jquery' ); } }
Supprimer lesinformations de version de WordPresspour la sécurité
<₹ Testé sur: WordPress 3.0.1
// Remove version info from head and feeds function complete_version_removal() { return ''; } add_filter('the_generator', 'complete_version_removal');
Ajouter du spam & amp; Supprimer les liens vers les commentaires sur Front End
<₹ Testé sur: WordPress 3.0.1
Celafacilite lagestion des commentaires depuis lefront-enden ajoutant du spamet en supprimant des liens. **
// Spam & delete links for all versions of WordPress function delete_comment_link($id) { if (current_user_can('edit_post')) { echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&c='.$id.'">del</a> '; echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&dt=spam&c='.$id.'">spam</a>'; } }
Retarder lapublicationpublique dans leflux RSS
<₹ Testé sur: WordPress 3.0.1
Enfin,j'aime retarder lapublication surmesflux RSS de 10 à 15minutes carje trouvetoujours aumoins quelqueserreurs dansmontexte. D'autres utilisations sontpossibles au cas où vous souhaiteriez que le contenu soitexclusif à votre sitependant unejournée ou une semaine avant de le diffuser à vos lecteurs RSS.
// Delay feed update function publish_later_on_feed($where) { global $wpdb; if (is_feed()) { // Timestamp in WordPress format $now = gmdate('Y-m-d H:i:s'); // Value for wait; + device $wait = '10'; // integer // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff $device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR // Add SQL syntax to default $where $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'publish_later_on_feed');
Loading jQuery from the Google CDN
Tested on: WordPress 3.0.1
// Even more smart jQuery inclusion :) add_action( 'init', 'jquery_register' ); // Register from Google and for footer function jquery_register() { if ( !is_admin() ) { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', ( 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' ), false, null, true ); wp_enqueue_script( 'jquery' ); } }
Remove the WordPress Version Info for Security
Tested on: WordPress 3.0.1
// Remove version info from head and feeds function complete_version_removal() { return ''; } add_filter('the_generator', 'complete_version_removal');
Add Spam & Delete Links to Comments on Front End
Tested on: WordPress 3.0.1
This makes it way easier to manage comments from the front end by adding spam and delete links.**
// Spam & delete links for all versions of WordPress function delete_comment_link($id) { if (current_user_can('edit_post')) { echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&c='.$id.'">del</a> '; echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&dt=spam&c='.$id.'">spam</a>'; } }
Delay the public posting to RSS Feed
Tested on: WordPress 3.0.1
Finally, I like to delay posting to my RSS feeds for 10-15 minutes because I always find at least a couple errors in my text. Other uses are in case you want content to be exclusive to your site for a day or a week before pushing it out to your RSS readers.
// Delay feed update function publish_later_on_feed($where) { global $wpdb; if (is_feed()) { // Timestamp in WordPress format $now = gmdate('Y-m-d H:i:s'); // Value for wait; + device $wait = '10'; // integer // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff $device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR // Add SQL syntax to default $where $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'publish_later_on_feed');
-
source surmonpost: http://wpengineer.com/320/publish-the-feed-later/avecplus d'informationssource on my post: http://wpengineer.com/320/publish-the-feed-later/ with more informations
- 0
- 2010-09-17
- bueltge
-
Vouspouvez aussi simplement supprimer lefiltre dugénérateur: `remove_action ('wp_head','wp_generator');`You can also just remove the generator filter: `remove_action('wp_head', 'wp_generator');`
- 1
- 2010-09-18
- Gipetto
-
Pourquoin'utilisons-nouspasgoogle cdnpour l'administrateur aussi?Jene l'aipas comprisWhy dont we use google cdn for admin too? I didnt get it
- 0
- 2010-11-05
- Ünsal Korkmaz
-
@Derek Perkins - Pouvez-vous donner à chacun de cesextraits de code une réponse différente afin qu'ilspuissent chacun être votés séparément?@Derek Perkins - Can you make each of these code snippets a different answer so they can each be voted on separately?
- 0
- 2010-11-06
- MikeSchinkel
-
http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.jsexpire aubout d'une heure seulement.** Toujours ** utiliser lesinformations de version complètes comme http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js - quiexpire après un an.http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js expires after just one hour. **Always** use the full version information like http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js – that expires after one year.
- 25
- 2010-11-10
- fuxia
-
Pouvez-vous s'il vousplaît diviser chacune de cesentrées wikien entrées séparées dans lesprochaines semaines.Je voulais lefairepour vousmaisje ne voulaispas donner l'impression quej'essaie deprendre despointspour lesinformations que vous avezpartagées.Can you please split each of these wiki entries up into separate entries within the next few weeks. I wanted to do it for you but I did not want to make it seem like I am trying to take points for information you shared.
- 0
- 2011-01-26
- NetConstructor.com
-
Le code «Supprimer lesinformations de version WordPresspour la sécurité»ne fait rienpour augmenter la sécurité de votre site.Celan'empêchemêmepas l'exposition de la version WP utilisée sur votre site.The "Remove the WordPress Version Info for Security" code doesn't actually do anything to increase the security of your site. It doesn't even stop exposure of the WP version being used on your site.
- 5
- 2011-02-11
- Joseph Scott
-
Cen'estpas vrai Joseph,si votre version de WordPressestexposée,lesgenspeuvent voir si vous utilisez une versionplus ancienne,exposant ainsi vos vulnérabilités.C'esttoujours unebonne décision de supprimer cela detoutes lesinstallations WordPress.Personnellement,je ne saismêmepaspourquoiils l'ontmis làen premier lieu car c'est unproblème de sécurité.Not true Joseph, if your WordPress version is exposed then people can see if you are running an older version, thus exposing your vulnerabilities. It is always a good decision to remove that from all WordPress installs. Personally, I don't even know why they put it there in the first place as it IS a security issue.
- 1
- 2014-05-12
- Jeremy
-
- 2010-09-11
Définissez unnombremaximal de révisions depublicationpour éviter legonflement de labase de données.
Testé sur: WordPress 3.0.1
La valeurpar défautestinfinie,et cela le configurerapourne se souvenir que des cinq dernièresmodifications:
/** * Set the post revisions unless the constant was set in wp-config.php */ if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);
Pour ce que ça vaut,il y a unetonne debonnesidéespour CONSTANTS quipeuvent être définies sur lapage du Codex Modification de wp-config.php .
Set a maximum number of post revisions to avoid DB bloat.
Tested on: WordPress 3.0.1
The default is infinite, and this will set it to only remember the last five edits:
/** * Set the post revisions unless the constant was set in wp-config.php */ if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);
For what it's worth, there are a ton of great ideas for CONSTANTS that can be set on the Codex page Editing wp-config.php.
-
Celapeut-il être définipartype depublication?Can this be set on a per post type basis?
- 0
- 2010-09-12
- NetConstructor.com
-
En regardant son utilisation dans wp_save_post_revision (),ilne semblepas y avoir demoyen de distingueren fonction destypes depublication.Iln'y apas defiltre ou quoi que ce soit sur la valeur,bien qu'il devraitprobablement yen avoir.Looking at its usage in wp_save_post_revision() there doesn't seem to be a way to distinguish based on post types. There's no filter or anything on the value, though there probably should be.
- 0
- 2010-09-12
- jerclarke
-
merci Jeremy - An'importe qui d'autre,si vous savez commentfaire cela,veuillez leposterici.thanks Jeremy - To anyone else, if you know how to do this please post it here.
- 0
- 2010-09-14
- NetConstructor.com
-
personnellementje préfère 10. Je sais que c'est le doublemaistoujours quandj'aibesoin d'une révision c'esttoujoursplus vieux que 5personally I prefer 10. I know it's double but always when I need a revision it's always older then 5
- 1
- 2012-09-04
- janw
-
- 2011-12-04
Accentuer lesimages redimensionnées (uniquement JPEG)
Cettefonction accentue lanetteté desimages JPEG redimensionnées. Unexemple de différence:
function ajx_sharpen_resized_files( $resized_file ) { $image = wp_load_image( $resized_file ); if ( !is_resource( $image ) ) return new WP_Error( 'error_loading_image', $image, $file ); $size = @getimagesize( $resized_file ); if ( !$size ) return new WP_Error('invalid_image', __('Could not read image size'), $file); list($orig_w, $orig_h, $orig_type) = $size; switch ( $orig_type ) { case IMAGETYPE_JPEG: $matrix = array( array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1), ); $divisor = array_sum(array_map('array_sum', $matrix)); $offset = 0; imageconvolution($image, $matrix, $divisor, $offset); imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' )); break; case IMAGETYPE_PNG: return $resized_file; case IMAGETYPE_GIF: return $resized_file; } return $resized_file; } add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files', 900);
Sharpen Resized Images (only JPEG)
This function sharpens resized JPEG images. An example of a difference:
function ajx_sharpen_resized_files( $resized_file ) { $image = wp_load_image( $resized_file ); if ( !is_resource( $image ) ) return new WP_Error( 'error_loading_image', $image, $file ); $size = @getimagesize( $resized_file ); if ( !$size ) return new WP_Error('invalid_image', __('Could not read image size'), $file); list($orig_w, $orig_h, $orig_type) = $size; switch ( $orig_type ) { case IMAGETYPE_JPEG: $matrix = array( array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1), ); $divisor = array_sum(array_map('array_sum', $matrix)); $offset = 0; imageconvolution($image, $matrix, $divisor, $offset); imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' )); break; case IMAGETYPE_PNG: return $resized_file; case IMAGETYPE_GIF: return $resized_file; } return $resized_file; } add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files', 900);
-
beaucoupmieuxjpegs,mercibeaucoup!testéen 3.4-alphamuch much better jpegs, thanks a bunch! tested in 3.4-alpha
- 0
- 2012-04-02
- brasofilo
-
si vous voulez cela commeplugin: http://wordpress.org/extend/plugins/sharpen-resized-images/if u guys want this as plugin: http://wordpress.org/extend/plugins/sharpen-resized-images/
- 2
- 2012-04-03
- Ünsal Korkmaz
-
où va cettefonction?where does this function go?
- 0
- 2019-03-18
- StevieD
-
@StevieD - comme letitre l'indique,il va dansfunctions.php,dans votremodèle.Jeferais attention cependant,cettefonction apresque 8 ans.@StevieD - as the title suggests, it goes inside functions.php, in your template. I would be careful though, this function is almost 8 years old.
- 0
- 2019-07-25
- timofey.com
-
- 2010-09-09
Supprimer lesméta-boîtes WordPresspar défaut
Testé sur: WordPress 3.0.1
Ce code vouspermettra de supprimer des Meta Box spécifiques que WordPress ajoutepar défaut aux écrans Ajouter/Modifier un articleet Ajouter/Modifier unepagepar défaut.
// REMOVE META BOXES FROM DEFAULT POSTS SCREEN function remove_default_post_screen_metaboxes() { remove_meta_box( 'postcustom','post','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','post','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','post','normal' ); // Comments Metabox remove_meta_box( 'trackbacksdiv','post','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','post','normal' ); // Slug Metabox remove_meta_box( 'authordiv','post','normal' ); // Author Metabox } add_action('admin_menu', 'remove_default_post_screen_metaboxes'); // REMOVE META BOXES FROM DEFAULT PAGES SCREEN function remove_default_page_screen_metaboxes() { remove_meta_box( 'postcustom','page','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','page','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','page','normal' ); // Comments Metabox remove_meta_box( 'trackbacksdiv','page','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','page','normal' ); // Slug Metabox remove_meta_box( 'authordiv','page','normal' ); // Author Metabox } add_action('admin_menu', 'remove_default_page_screen_metaboxes');
Remove Default WordPress Meta Boxes
Tested on: WordPress 3.0.1
This code will allow you to remove specific Meta Boxes which WordPress adds by default to the default Add/Edit Post and Add/Edit Page screens.
// REMOVE META BOXES FROM DEFAULT POSTS SCREEN function remove_default_post_screen_metaboxes() { remove_meta_box( 'postcustom','post','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','post','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','post','normal' ); // Comments Metabox remove_meta_box( 'trackbacksdiv','post','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','post','normal' ); // Slug Metabox remove_meta_box( 'authordiv','post','normal' ); // Author Metabox } add_action('admin_menu', 'remove_default_post_screen_metaboxes'); // REMOVE META BOXES FROM DEFAULT PAGES SCREEN function remove_default_page_screen_metaboxes() { remove_meta_box( 'postcustom','page','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','page','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','page','normal' ); // Comments Metabox remove_meta_box( 'trackbacksdiv','page','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','page','normal' ); // Slug Metabox remove_meta_box( 'authordiv','page','normal' ); // Author Metabox } add_action('admin_menu', 'remove_default_page_screen_metaboxes');
-
Selon ce http://wordpress.stackexchange.com/questions/34030/cant-change-permalink-url-after-hitting-ok-and-update/37779#37779,je ne cacheraispas le slugdiv de cettefaçon,mais utiliserce https://gist.github.com/1863830 à laplaceAccording to this http://wordpress.stackexchange.com/questions/34030/cant-change-permalink-url-after-hitting-ok-and-update/37779#37779 I wouldn't hide the slugdiv this way, but use this https://gist.github.com/1863830 instead
-
@CorvanNoorloos Votre liengithubest rompu.@CorvanNoorloos Your github link is broken.
- 0
- 2017-02-26
- user7003859
-
- 2010-09-15
Supprimer & quot; Wordpress & quot;à & quot; WordPress & quot;filtre
Testé sur: WordPress 3.0.1
Unfiltre a été ajouté avec la version 3.0 de WordPress qui convertit automatiquementtoutes lesinstances de & quot; Wordpress & quot;(pas de Pmajuscule) à & quot; WordPress & quot;(avec un Pmajuscule) dans le contenu des articles,lestitres des articleset letexte des commentaires.Certainespersonnes voient cela commeintrusif,maisj'aijustebesoin demal caser WordPress detempsen tempset j'aitrouvé lefiltre quelquepeuennuyeux.
// Remove annoying P filter if(function_exists('capital_P_dangit')) { foreach ( array( 'the_content', 'the_title' ) as $filter ) remove_filter( $filter, 'capital_P_dangit', 11 ); remove_filter('comment_text', 'capital_P_dangit', 31 ); }
Remove "Wordpress" to "WordPress" filter
Tested on: WordPress 3.0.1
There was a filter added with WordPress version 3.0 that automatically converts all instances of "Wordpress" (no capital P) to "WordPress" (with a capital P) in post content, post titles, and comment text. Some people see this as intrusive, but I just have a need to mis-case WordPress from time to time and found the filter somewhat annoying.
// Remove annoying P filter if(function_exists('capital_P_dangit')) { foreach ( array( 'the_content', 'the_title' ) as $filter ) remove_filter( $filter, 'capital_P_dangit', 11 ); remove_filter('comment_text', 'capital_P_dangit', 31 ); }
-
superpetite trouvaille.Une de ces choses qui supprime simplement un autremorceau de code quin'estpasnécessairegreat little find. One of those things which just removes another piece of code that is not needed
- 0
- 2010-09-17
- NetConstructor.com
-
Dans WordPress 3.0.1,[cefiltreest ajouté avec lapriorité 11] (http://core.trac.wordpress.org/changeset/15378/branches/3.0/wp-includes/default-filters.php),vous avez doncbesoinpour ajouter «11» commetroisièmeparamètrepour le supprimer.In WordPress 3.0.1, [this filter is added with priority 11](http://core.trac.wordpress.org/changeset/15378/branches/3.0/wp-includes/default-filters.php), so you need to add `11` as the third parameter to remove it.
- 5
- 2010-11-05
- Jan Fabry
-
- 2010-10-21
Personnaliser letableau debord
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets'); function my_custom_dashboard_widgets() { global $wp_meta_boxes;
Supprimez ces widgets detableau debord ...
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
Ajoutez un widgetpersonnalisé appelé "Aideet support"
wp_add_dashboard_widget('custom_help_widget', 'Help and Support', 'custom_dashboard_help'); }
Voici le contenu de votre widgetpersonnalisé
function custom_dashboard_help() { echo '<p>Lorum ipsum delor sit amet et nunc</p>'; }
Customize the Dashboard
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets'); function my_custom_dashboard_widgets() { global $wp_meta_boxes;
Remove these dashboard widgets...
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
Add a custom widget called 'Help and Support'
wp_add_dashboard_widget('custom_help_widget', 'Help and Support', 'custom_dashboard_help'); }
This is the content for your custom widget
function custom_dashboard_help() { echo '<p>Lorum ipsum delor sit amet et nunc</p>'; }
-
- 2010-11-16
Ajouter des champs deprofil utilisateurpersonnalisés
Placez le code ci-dessous dans votrefichierfunctions.phppour ajouter des champs deprofil utilisateurpersonnalisés. Modifiez ou ajoutez des lignes commebon vous semble.
N'oubliezpas dene pas supprimer la ligne: return $ contactmethods; sinon celane fonctionnerapas.
// CUSTOM USER PROFILE FIELDS function my_custom_userfields( $contactmethods ) { // ADD CONTACT CUSTOM FIELDS $contactmethods['contact_phone_office'] = 'Office Phone'; $contactmethods['contact_phone_mobile'] = 'Mobile Phone'; $contactmethods['contact_office_fax'] = 'Office Fax'; // ADD ADDRESS CUSTOM FIELDS $contactmethods['address_line_1'] = 'Address Line 1'; $contactmethods['address_line_2'] = 'Address Line 2 (optional)'; $contactmethods['address_city'] = 'City'; $contactmethods['address_state'] = 'State'; $contactmethods['address_zipcode'] = 'Zipcode'; return $contactmethods; } add_filter('user_contactmethods','my_custom_userfields',10,1);
Pour afficher les champspersonnalisés,vouspouvez utiliser l'une des deuxméthodes répertoriées ci-dessous.
Option 1:
the_author_meta('facebook', $current_author->ID)
Option 2:
<?php $current_author = get_userdata(get_query_var('author')); ?> <p><a href="<?php echo esc_url($current_author->contact_phone_office);?>" title="office_phone"> Office Phone</a></p>
Add Custom User Profile Fields
Place the code below into your functions.php file to add custom user profile fields. Edit or add lines as you see fit.
Remember not to remove the line: return $contactmethods; otherwise this won't work.
// CUSTOM USER PROFILE FIELDS function my_custom_userfields( $contactmethods ) { // ADD CONTACT CUSTOM FIELDS $contactmethods['contact_phone_office'] = 'Office Phone'; $contactmethods['contact_phone_mobile'] = 'Mobile Phone'; $contactmethods['contact_office_fax'] = 'Office Fax'; // ADD ADDRESS CUSTOM FIELDS $contactmethods['address_line_1'] = 'Address Line 1'; $contactmethods['address_line_2'] = 'Address Line 2 (optional)'; $contactmethods['address_city'] = 'City'; $contactmethods['address_state'] = 'State'; $contactmethods['address_zipcode'] = 'Zipcode'; return $contactmethods; } add_filter('user_contactmethods','my_custom_userfields',10,1);
To display custom fields you can use one of the two methods listed below.
Option 1:
the_author_meta('facebook', $current_author->ID)
Option 2:
<?php $current_author = get_userdata(get_query_var('author')); ?> <p><a href="<?php echo esc_url($current_author->contact_phone_office);?>" title="office_phone"> Office Phone</a></p>
-
- 2010-09-09
Personnaliser l’ordre dumenu d’administration
Testé sur: WordPress 3.0.1
Ce code vouspermettra de réorganiser l'ordre des éléments dans lemenu d'administration. Tout ce que vous avez àfaireest de cliquer sur un lienexistant dans lemenu d'administrationet detout copier avant l'URL/wp-admin/. L'ordre ci-dessous représente l'ordre dunouveaumenu d'administration.
// CUSTOMIZE ADMIN MENU ORDER function custom_menu_order($menu_ord) { if (!$menu_ord) return true; return array( 'index.php', // This represents the dashboard link 'edit.php?post_type=events', // This is a custom post type menu 'edit.php?post_type=news', 'edit.php?post_type=articles', 'edit.php?post_type=faqs', 'edit.php?post_type=mentors', 'edit.php?post_type=testimonials', 'edit.php?post_type=services', 'edit.php?post_type=page', // This is the default page menu 'edit.php', // This is the default POST admin menu ); } add_filter('custom_menu_order', 'custom_menu_order'); add_filter('menu_order', 'custom_menu_order');
Customize the order of the administration menu
Tested on: WordPress 3.0.1
This code will allow you to reorganize the order of elements in the administration menu. All that you need to do is click on an existing link in the administration menu and copy everything before the /wp-admin/ URL. The order below represents the order the new administration menu will have.
// CUSTOMIZE ADMIN MENU ORDER function custom_menu_order($menu_ord) { if (!$menu_ord) return true; return array( 'index.php', // This represents the dashboard link 'edit.php?post_type=events', // This is a custom post type menu 'edit.php?post_type=news', 'edit.php?post_type=articles', 'edit.php?post_type=faqs', 'edit.php?post_type=mentors', 'edit.php?post_type=testimonials', 'edit.php?post_type=services', 'edit.php?post_type=page', // This is the default page menu 'edit.php', // This is the default POST admin menu ); } add_filter('custom_menu_order', 'custom_menu_order'); add_filter('menu_order', 'custom_menu_order');
-
Existe-t-il vraiment unfiltreprincipalnommé `custom_menu_order`?Jen'aipaspuen trouver un ...Is there really a core filter named `custom_menu_order`? I couldn't find one...
- 0
- 2011-03-01
- kaiser
-
@kaiser documentéici http://codex.wordpress.org/Plugin_API/Filter_Reference/custom_menu_order@kaiser documented here http://codex.wordpress.org/Plugin_API/Filter_Reference/custom_menu_order
- 4
- 2012-08-18
- Manny Fleurmond
-
- 2010-09-12
Fonctionpour changer la longueur de l'extrait
Testé sur: Wordpress 3.0.1
Par défaut,tous lesextraits sont limités à 55mots.En utilisant le code ci-dessous,vouspouvez remplacer cesparamètrespar défaut:
function new_excerpt_length($length) { return 100; } add_filter('excerpt_length', 'new_excerpt_length');
Cetexemple change la longueur de l'extrait à 100mots,mais vouspouvez utiliser lamêmeméthodepour le changeren n'importe quelle valeur.
Function to change the length of Exerpt
Tested on: Wordpress 3.0.1
By default all excerpts are capped at 55 words. Utilizing the code below you can override this default settings:
function new_excerpt_length($length) { return 100; } add_filter('excerpt_length', 'new_excerpt_length');
This example changes the excerpt length to 100 words, but you can use the same method to change it to any value.
-
@ user402 ... cela limite-t-ilpar desmots ou des caractères?Pourriez-vousposter commentfaire les deux?@user402... does this cap by words or characters? Could you post how to do both?
- 0
- 2010-09-12
- NetConstructor.com
-
*@NetConstructor.com* Cettefonction (et le crochet `excerpt_length`) [capby words] (http://codex.wordpress.org/Plugin_API/Filter_Reference/excerpt_length).*@NetConstructor.com* This function (and the `excerpt_length` hook) [cap by words](http://codex.wordpress.org/Plugin_API/Filter_Reference/excerpt_length).
- 3
- 2010-09-15
- EAMann
-
Il h.J'ai ajouté cefiltre aunoyau.:)Heh. I got that filter added to core. :)
- 0
- 2011-03-08
- Dougal Campbell
-
- 2010-12-28
Ajouter desminiatures dans la liste degestion des articles/pages
Vouspouvez l'ajouter à vosfonctionspour afficher dans la liste Gérer/Modifier l'articleet lespages unenouvelle colonne avec l'aperçu des vignettes.
/****** Add Thumbnails in Manage Posts/Pages List ******/ if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) { // for post and page add_theme_support('post-thumbnails', array( 'post', 'page' ) ); function AddThumbColumn($cols) { $cols['thumbnail'] = __('Thumbnail'); return $cols; } function AddThumbValue($column_name, $post_id) { $width = (int) 35; $height = (int) 35; if ( 'thumbnail' == $column_name ) { // thumbnail of WP 2.9 $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true ); // image from gallery $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') ); if ($thumbnail_id) $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true ); elseif ($attachments) { foreach ( $attachments as $attachment_id => $attachment ) { $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true ); } } if ( isset($thumb) && $thumb ) { echo $thumb; } else { echo __('None'); } } } // for posts add_filter( 'manage_posts_columns', 'AddThumbColumn' ); add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 ); // for pages add_filter( 'manage_pages_columns', 'AddThumbColumn' ); add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 ); }
Add Thumbnails in Manage Posts/Pages List
You can add this to your functions to display to the Manage/Edit Post and Pages List a new column with the thumbnail preview.
/****** Add Thumbnails in Manage Posts/Pages List ******/ if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) { // for post and page add_theme_support('post-thumbnails', array( 'post', 'page' ) ); function AddThumbColumn($cols) { $cols['thumbnail'] = __('Thumbnail'); return $cols; } function AddThumbValue($column_name, $post_id) { $width = (int) 35; $height = (int) 35; if ( 'thumbnail' == $column_name ) { // thumbnail of WP 2.9 $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true ); // image from gallery $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') ); if ($thumbnail_id) $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true ); elseif ($attachments) { foreach ( $attachments as $attachment_id => $attachment ) { $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true ); } } if ( isset($thumb) && $thumb ) { echo $thumb; } else { echo __('None'); } } } // for posts add_filter( 'manage_posts_columns', 'AddThumbColumn' ); add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 ); // for pages add_filter( 'manage_pages_columns', 'AddThumbColumn' ); add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 ); }
-
Comment déplacer la colonne à l'extrêmegauche?How to move the column to the far left?
- 0
- 2013-10-08
- Rich
-
- 2010-09-15
Supprimer lespings de votrepropreblog
Testé sur: WordPress 3.0.1
// Remove pings to self function no_self_ping( &$links ) { $home = get_option( 'home' ); foreach ( $links as $l => $link ) if ( 0 === strpos( $link, $home ) ) unset($links[$l]); } add_action( 'pre_ping', 'no_self_ping' );
Remove pings to your own blog
Tested on: WordPress 3.0.1
// Remove pings to self function no_self_ping( &$links ) { $home = get_option( 'home' ); foreach ( $links as $l => $link ) if ( 0 === strpos( $link, $home ) ) unset($links[$l]); } add_action( 'pre_ping', 'no_self_ping' );
-
à quellefréquenceet quand wordpress seping-t-il?how often and when does wordpress ping itself?
- 0
- 2010-09-17
- NetConstructor.com
-
J'aien fait assez souvent ceproblème.Sije référence un lieninterne vers un autre article surmonblog WP,je reçois untrackback ou unpingback (jene me souvienspas lequel) demoi-même.C'estennuyant.I actually have that issue quite often. If I reference an internal link to another post on my WP blog, I get a trackback or pingback (don't remember which) from myself. It's annoying.
- 0
- 2010-12-18
- Sahas Katta
-
Pareilici.J'ai unblog d'actualité/magazineet des liens vers d'autres articles assez souvent.Same here. I have a news / magazine blog and link to other articles quite often.
- 0
- 2011-02-13
- Steven
-
- 2010-12-23
Activer la compression de sortie GZIP
Normalement,le serveur devrait être configurépourfaire cela automatiquement,mais denombreux hôtespartagésne lefontpas (probablementpour augmenter l'utilisation de labandepassante du client).
if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler")) add_action('wp', create_function('', '@ob_end_clean();@ini_set("zlib.output_compression", 1);'));
Enable GZIP output compression
Normally the server should be set up to do this automatically, but a lot of shared hosts don’t do this (probably to increase client bandwidth usage).
if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler")) add_action('wp', create_function('', '@ob_end_clean();@ini_set("zlib.output_compression", 1);'));
-
- 2010-09-15
Afficher les requêtes DB,letempspasséet la consommation demémoire
Testé sur: WordPress 3.0.1
function performance( $visible = false ) { $stat = sprintf( '%d queries in %.3f seconds, using %.2fMB memory', get_num_queries(), timer_stop( 0, 3 ), memory_get_peak_usage() / 1024 / 1024 ); echo $visible ? $stat : "<!-- {$stat} -->" ; }
Ensuite,ce code sous le code ci-dessus quiinsérera automatiquement le code ci-dessus dans lepied depage de votre site Webpublic (assurez-vous que votrethème appelle
wp_footer
):add_action( 'wp_footer', 'performance', 20 );
Ilpeut être appeléplusieursfois.
Display DB Queries, Time Spent and Memory Consumption
Tested on: WordPress 3.0.1
function performance( $visible = false ) { $stat = sprintf( '%d queries in %.3f seconds, using %.2fMB memory', get_num_queries(), timer_stop( 0, 3 ), memory_get_peak_usage() / 1024 / 1024 ); echo $visible ? $stat : "<!-- {$stat} -->" ; }
Then this code below the code above which will automatically insert the code above into the footer of your public website (make sure your theme is calling
wp_footer
):add_action( 'wp_footer', 'performance', 20 );
It can be called multiple times.
-
pourphp <5.2 utilisez `memory_get_usage ()`for php < 5.2 use `memory_get_usage()`
- 0
- 2011-01-23
- onetrickpony
-
- 2010-11-14
Désenregistrer les widgetspar défaut de WordPress
Testé sur: WordPress 3.0.1
// Unregister all default WordPress Widgets function unregister_default_wp_widgets() { unregister_widget('WP_Widget_Pages'); unregister_widget('WP_Widget_Calendar'); unregister_widget('WP_Widget_Archives'); unregister_widget('WP_Widget_Links'); unregister_widget('WP_Widget_Meta'); unregister_widget('WP_Widget_Search'); unregister_widget('WP_Widget_Text'); unregister_widget('WP_Widget_Categories'); unregister_widget('WP_Widget_Recent_Posts'); unregister_widget('WP_Widget_Recent_Comments'); unregister_widget('WP_Widget_RSS'); unregister_widget('WP_Widget_Tag_Cloud'); } add_action('widgets_init', 'unregister_default_wp_widgets', 1);
Unregister WordPress Default Widgets
Tested on: WordPress 3.0.1
// Unregister all default WordPress Widgets function unregister_default_wp_widgets() { unregister_widget('WP_Widget_Pages'); unregister_widget('WP_Widget_Calendar'); unregister_widget('WP_Widget_Archives'); unregister_widget('WP_Widget_Links'); unregister_widget('WP_Widget_Meta'); unregister_widget('WP_Widget_Search'); unregister_widget('WP_Widget_Text'); unregister_widget('WP_Widget_Categories'); unregister_widget('WP_Widget_Recent_Posts'); unregister_widget('WP_Widget_Recent_Comments'); unregister_widget('WP_Widget_RSS'); unregister_widget('WP_Widget_Tag_Cloud'); } add_action('widgets_init', 'unregister_default_wp_widgets', 1);
-
Je l'ai utilisé sur la version 3.1.4.Mais les widgets sonttoujours là.Quelqu'un a-t-il uneidée?I have used it on Version 3.1.4 . But the widgets are still there. Does any one have idea?
- 0
- 2011-07-01
- user391
-
Fonctionnetoujours sur WP 4.5 :)Still works on WP 4.5 :)
- 0
- 2016-04-19
- Tim Malone
-
- 2010-09-10
Extraire automatiquement lapremièreimage du contenu de l'article
Testé sur: WordPress 3.0.1
Ce codeextraira automatiquement lapremièreimage associée à un articleet vouspermettra de l'afficher/l'utiliseren appelant lafonctiongetImage.
// AUTOMATICALLY EXTRACT THE FIRST IMAGE FROM THE POST function getImage($num) { global $more; $more = 1; $link = get_permalink(); $content = get_the_content(); $count = substr_count($content, '<img'); $start = 0; for($i=1;$i<=$count;$i++) { $imgBeg = strpos($content, '<img', $start); $post = substr($content, $imgBeg); $imgEnd = strpos($post, '>'); $postOutput = substr($post, 0, $imgEnd+1); $postOutput = preg_replace('/width="([0-9]*)" height="([0-9]*)"/', '',$postOutput);; $image[$i] = $postOutput; $start=$imgEnd+1; } if(stristr($image[$num],'<img')) { echo '<a href="'.$link.'">'.$image[$num]."</a>"; } $more = 0; }
Auto Extract the First Image from the Post Content
Tested on: WordPress 3.0.1
This code will automatically extract the first image associated with a post and allow you to display/use it by calling the getImage function.
// AUTOMATICALLY EXTRACT THE FIRST IMAGE FROM THE POST function getImage($num) { global $more; $more = 1; $link = get_permalink(); $content = get_the_content(); $count = substr_count($content, '<img'); $start = 0; for($i=1;$i<=$count;$i++) { $imgBeg = strpos($content, '<img', $start); $post = substr($content, $imgBeg); $imgEnd = strpos($post, '>'); $postOutput = substr($post, 0, $imgEnd+1); $postOutput = preg_replace('/width="([0-9]*)" height="([0-9]*)"/', '',$postOutput);; $image[$i] = $postOutput; $start=$imgEnd+1; } if(stristr($image[$num],'<img')) { echo '<a href="'.$link.'">'.$image[$num]."</a>"; } $more = 0; }
-
Bien,maisget_the_imagefait également untrèsbontravail avec cela.http://wordpress.org/extend/plugins/get-the-image/Nice, but get_the_image does a very good job with this as well. http://wordpress.org/extend/plugins/get-the-image/
- 6
- 2010-09-15
- artlung
-
correctmais celui-cifonctionne différemmentet corrige diversproblèmes dontget_the_imagene prendpasen comptecorrect but this one works differently and fixes various issues which get_the_image does not take into account
- 0
- 2010-09-30
- NetConstructor.com
-
Quefait-il différemment du scriptget_the_image?What does it do differently than the get_the_image script?
- 3
- 2010-12-05
- matt
-
@matt - Dans wordpress,il y a différentesfaçons d'ajouter desimages auxmessageset jepense que le scriptget_the_imagen'en regarde qu'une seule.Cela vérifie s'il y a uneimageen vedetteet l'utiliseen premier si disponible,ensuiteje pense qu'il vérifie lapremièreimage ajoutée au contenu de l'articleet si celan'estpastrouvé,il vérifie lagaleriemultimédiapour l'image avec letri leplus élevéordre (dumoins c'est comme ça queje me souviens de la commande).@matt -- In wordpress there are different ways that images can be added to posts and i think the get_the_image script just looks at one of those. This checks to see if there is a featured image and uses that one first if available, next I think it checks for the first image added to the post content and if that is not found it checks the media gallery for the image with the highest sort order (at least thats how I remember the order going).
- 1
- 2011-02-22
- NetConstructor.com
-
Je suggère http://wordpress.org/extend/plugins/auto-post-thumbnail/Générer automatiquement la vignette depublication (vignetteen vedette) àpartir de lapremièreimage de lapublication ou detouttype depublicationpersonnalisé uniquement si la vignette depublicationn'estpas définiei suggest http://wordpress.org/extend/plugins/auto-post-thumbnail/ Automatically generate the Post Thumbnail (Featured Thumbnail) from the first image in post or any custom post type only if Post Thumbnail is not set
- 0
- 2011-05-08
- Ünsal Korkmaz
-
Jene vérifiepas la vignette - êtes-vous sûr?i dont any check for thumbnail - are you sure?
- 0
- 2012-02-21
- Sagive SEO
-
- 2010-11-14
Supprimer l'avis demise àjour duplugin UNIQUEMENTpour lesplugins INACTIFS
function update_active_plugins($value = '') { /* The $value array passed in contains the list of plugins with time marks when the last time the groups was checked for version match The $value->reponse node contains an array of the items that are out of date. This response node is use by the 'Plugins' menu for example to indicate there are updates. Also on the actual plugins listing to provide the yellow box below a given plugin to indicate action is needed by the user. */ if ((isset($value->response)) && (count($value->response))) { // Get the list cut current active plugins $active_plugins = get_option('active_plugins'); if ($active_plugins) { // Here we start to compare the $value->response // items checking each against the active plugins list. foreach($value->response as $plugin_idx => $plugin_item) { // If the response item is not an active plugin then remove it. // This will prevent WordPress from indicating the plugin needs update actions. if (!in_array($plugin_idx, $active_plugins)) unset($value->response[$plugin_idx]); } } else { // If no active plugins then ignore the inactive out of date ones. foreach($value->response as $plugin_idx => $plugin_item) { unset($value->response); } } } return $value; } add_filter('transient_update_plugins', 'update_active_plugins'); // Hook for 2.8.+ //add_filter( 'option_update_plugins', 'update_active_plugins'); // Hook for 2.7.x
Remove Plugin Update Notice ONLY for INACTIVE plugins
function update_active_plugins($value = '') { /* The $value array passed in contains the list of plugins with time marks when the last time the groups was checked for version match The $value->reponse node contains an array of the items that are out of date. This response node is use by the 'Plugins' menu for example to indicate there are updates. Also on the actual plugins listing to provide the yellow box below a given plugin to indicate action is needed by the user. */ if ((isset($value->response)) && (count($value->response))) { // Get the list cut current active plugins $active_plugins = get_option('active_plugins'); if ($active_plugins) { // Here we start to compare the $value->response // items checking each against the active plugins list. foreach($value->response as $plugin_idx => $plugin_item) { // If the response item is not an active plugin then remove it. // This will prevent WordPress from indicating the plugin needs update actions. if (!in_array($plugin_idx, $active_plugins)) unset($value->response[$plugin_idx]); } } else { // If no active plugins then ignore the inactive out of date ones. foreach($value->response as $plugin_idx => $plugin_item) { unset($value->response); } } } return $value; } add_filter('transient_update_plugins', 'update_active_plugins'); // Hook for 2.8.+ //add_filter( 'option_update_plugins', 'update_active_plugins'); // Hook for 2.7.x
-
Cen'estpasnécessairement unebonneidée - unplugininactifesttoujoursprésent dans le système defichiers,et unpluginnon sécurisépeuttoujours être utilisépourpirater le site.Lesplugins doiventtoujours êtretenus àjour.This is not necessarily a good idea - an inactive plugin is still present in the filesystem, and an insecure one can still be utilised to hack the site. Plugins should always be kept up-to-date.
- 1
- 2016-04-11
- Tim Malone
-
- 2010-11-09
Supprimez lesinformations superflueset le code HTML dans labalise
<head>
// remove unnecessary header info add_action( 'init', 'remove_header_info' ); function remove_header_info() { remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'start_post_rel_link' ); remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'adjacent_posts_rel_link' ); // for WordPress < 3.0 remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' ); // for WordPress >= 3.0 } // remove extra CSS that 'Recent Comments' widget injects add_action( 'widgets_init', 'remove_recent_comments_style' ); function remove_recent_comments_style() { global $wp_widget_factory; remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) ); }
Remove superfluous info and HTML within the
<head>
tag// remove unnecessary header info add_action( 'init', 'remove_header_info' ); function remove_header_info() { remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'start_post_rel_link' ); remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'adjacent_posts_rel_link' ); // for WordPress < 3.0 remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' ); // for WordPress >= 3.0 } // remove extra CSS that 'Recent Comments' widget injects add_action( 'widgets_init', 'remove_recent_comments_style' ); function remove_recent_comments_style() { global $wp_widget_factory; remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) ); }
-
- 2010-11-13
Activer le débogageet lajournalisation deserreurs à utiliser sur les sitesen direct
C'est unmorceau de code quej'ai écritpour utiliser les constantes WP_DEBUG qui sontnormalement désactivéespar défaut. Ehbien,j'ai créé unmoyennon seulement d'activer WP_DEBUG afin que vouspuissiez l'utiliser sur un siteen direct sanseffets secondairesnégatifs,maisj'ai également utilisé les autres constantes de débogagepourforcer l'affichage deserreurset pour créer unfichierjournal deserreurset des avis dans le répertoire/wp-content.
Déposez ce code dans votrefichier wp-config.php (APRÈS AVOIR ENREGISTRÉ UNE SAUVEGARDE JUSTE AU CAS)et vouspourrezensuitepasser lesparamètres? debug=1,2 ou 3 à lafin den'importe quelle URL de votre site.
? debug=1=affichetoutes leserreurs/notifications ? debug=2=lesforce à s'afficher ? debug=3=crée unfichier debug.log detoutes leserreurs dans/wp-content dir.
/** * Written by Jared Williams - http://new2wp.com * @wp-config.php replace WP_DEBUG constant with this code * Enable WP debugging for usage on a live site * http://core.trac.wordpress.org/browser/trunk/wp-includes/load.php#L230 * Pass the '?debug=#' parameter at the end of any URL on site * * http://example.com/?debug=1, /?debug=2, /?debug=3 */ if ( isset($_GET['debug']) && $_GET['debug'] == '1' ) { // Enable the reporting of notices during development - E_ALL define('WP_DEBUG', true); } elseif ( isset($_GET['debug']) && $_GET['debug'] == '2' ) { // Must be true for WP_DEBUG_DISPLAY to work define('WP_DEBUG', true); // Force the display of errors define('WP_DEBUG_DISPLAY', true); } elseif ( isset($_GET['debug']) && $_GET['debug'] == '3' ) { // Must be true for WP_DEBUG_LOG to work define('WP_DEBUG', true); // Log errors to debug.log in the wp-content directory define('WP_DEBUG_LOG', true); }
Je vaisplusen détail sur lepost d'invité quej'ai écritpour Comluv si vous êtesintéressé,ici: http://comluv.com/dev/enable -débogage-et-journalisation-pour-l'utilisation-du-site-en-direct/
Jetravailletoujours sur unmoyen de le rendreprotégéparmot depasse ou,depréférence,de lefairefonctionner surif (current_user_can ('manage_themes')et is_logged_in ().
Mais c'est là que ça devientbeaucoupplus compliqué.
Enable Error Debugging And Logging To Use On Live Sites
This is a piece of code I wrote to make use of the WP_DEBUG constants that are normally disabled by default. Well, I created a way to not only enable WP_DEBUG so you can use it on a live site with no negative side-effects, but I also made use of the other debugging constants for forcing errors to be displayed, and for creating a log file of the errors and Notices in the /wp-content directory.
Drop this code in your wp-config.php file (AFTER YOU SAVE A BACKUP JUST IN CASE) and then you can pass the ?debug=1, 2, or 3 parameters at the end of any URL on your site.
?debug=1 = shows all errors/notices ?debug=2 = forces them to be displayed ?debug=3 = creates a debug.log file of all errors in /wp-content dir.
/** * Written by Jared Williams - http://new2wp.com * @wp-config.php replace WP_DEBUG constant with this code * Enable WP debugging for usage on a live site * http://core.trac.wordpress.org/browser/trunk/wp-includes/load.php#L230 * Pass the '?debug=#' parameter at the end of any URL on site * * http://example.com/?debug=1, /?debug=2, /?debug=3 */ if ( isset($_GET['debug']) && $_GET['debug'] == '1' ) { // Enable the reporting of notices during development - E_ALL define('WP_DEBUG', true); } elseif ( isset($_GET['debug']) && $_GET['debug'] == '2' ) { // Must be true for WP_DEBUG_DISPLAY to work define('WP_DEBUG', true); // Force the display of errors define('WP_DEBUG_DISPLAY', true); } elseif ( isset($_GET['debug']) && $_GET['debug'] == '3' ) { // Must be true for WP_DEBUG_LOG to work define('WP_DEBUG', true); // Log errors to debug.log in the wp-content directory define('WP_DEBUG_LOG', true); }
I go into more detail on the guest post I wrote for Comluv if you're interested, here: http://comluv.com/dev/enable-debugging-and-logging-for-live-site-usage/
I'm still working on a way to make this either password protected, or preferrably somehow make it work on if (current_user_can('manage_themes') and is_logged_in().
But that's where it gets alot more tricky.
-
Nous utilisons quelque chose de similairepour configurer les détails de connexion à labase de donnéesen direct,depréparationet de développement.We use something similar to setup live, staging and dev database connection details.
- 0
- 2011-03-07
- Tom
-
- 2010-09-10
Ajouter automatiquement destitres dynamiques auxpagespubliques
Testé sur: WordPress 3.0.1
L'utilisation du code ci-dessous créera automatiquement destitres depage dynamiquesen fonction despages/articles consultéspubliquement.
/* Dynamic Titles **/ // This sets your <title> depending on what page you're on, for better formatting and for SEO // You need to set the variable $longd to some custom text at the beginning of the function function dynamictitles() { $longd = __('Enter your longdescription here.', 'texdomainstring'); if ( is_single() ) { wp_title(''); echo ' | '.get_bloginfo('name'); } else if ( is_page() || is_paged() ) { bloginfo('name'); wp_title('|'); } else if ( is_author() ) { bloginfo('name'); wp_title(' | '.__('Author', 'texdomainstring')); } else if ( is_category() ) { bloginfo('name'); wp_title(' | '.__('Archive for', 'texdomainstring')); } else if ( is_tag() ) { echo get_bloginfo('name').' | '.__('Tag archive for', 'texdomainstring'); wp_title(''); } else if ( is_archive() ) { echo get_bloginfo('name').' | '.__('Archive for', 'texdomainstring'); wp_title(''); } else if ( is_search() ) { echo get_bloginfo('name').' | '.__('Search Results', 'texdomainstring'); } else if ( is_404() ) { echo get_bloginfo('name').' | '.__('404 Error (Page Not Found)', 'texdomainstring'); } else if ( is_home() ) { echo get_bloginfo('name').' | '.get_bloginfo('description'); } else { echo get_bloginfo('name').' | '.($blog_longd); } }
Automatically Add Dynamic Titles to Public Pages
Tested on: WordPress 3.0.1
Utilizing the code below will automatically create dynamic page titles based upon the pages/posts being viewed publicly.
/* Dynamic Titles **/ // This sets your <title> depending on what page you're on, for better formatting and for SEO // You need to set the variable $longd to some custom text at the beginning of the function function dynamictitles() { $longd = __('Enter your longdescription here.', 'texdomainstring'); if ( is_single() ) { wp_title(''); echo ' | '.get_bloginfo('name'); } else if ( is_page() || is_paged() ) { bloginfo('name'); wp_title('|'); } else if ( is_author() ) { bloginfo('name'); wp_title(' | '.__('Author', 'texdomainstring')); } else if ( is_category() ) { bloginfo('name'); wp_title(' | '.__('Archive for', 'texdomainstring')); } else if ( is_tag() ) { echo get_bloginfo('name').' | '.__('Tag archive for', 'texdomainstring'); wp_title(''); } else if ( is_archive() ) { echo get_bloginfo('name').' | '.__('Archive for', 'texdomainstring'); wp_title(''); } else if ( is_search() ) { echo get_bloginfo('name').' | '.__('Search Results', 'texdomainstring'); } else if ( is_404() ) { echo get_bloginfo('name').' | '.__('404 Error (Page Not Found)', 'texdomainstring'); } else if ( is_home() ) { echo get_bloginfo('name').' | '.get_bloginfo('description'); } else { echo get_bloginfo('name').' | '.($blog_longd); } }
-
- 2010-11-09
Nouveaux rôleset fonctionnalités - Exécuter une seulefois!
Je lesgarde àportée demain,c'est la bonne façon de lesfaire sansplugin. Ils définissent un seul champ (prefix_user_roles) dans labase de données d'options,et vousn'avezpasbesoin d'unpluginpour les définir. Reportez-vous à lapage Codexpour obtenir une liste desfonctionnalités disponibleset des descriptions de ce qu'ellesfont. Vousil suffit de décommenter l'un de cesblocs,de chargern'importe quellepage,puis de les commenter ànouveau! Ici,je crée un rôle doté desfonctionnalités dontj'aibesoin:
/* Capabilities */ // To add the new role, using 'international' as the short name and // 'International Blogger' as the displayed name in the User list and edit page: /* add_role('international', 'International Blogger', array( 'read' => true, // True allows that capability, False specifically removes it. 'edit_posts' => true, 'delete_posts' => true, 'edit_published_posts' => true, 'publish_posts' => true, 'edit_files' => true, 'import' => true, 'upload_files' => true //last in array needs no comma! )); */ // To remove one outright or remove one of the defaults: /* remove_role('international'); */
Ilestparfoispratique d'ajouter/supprimer un rôleexistantplutôt que d'en supprimeret d'en rajouter un. Encore unefois,il vous suffit de le décommenter,de recharger unepage,puis de la commenter ànouveau. Cela stockera correctement le rôle/la capacité dans letableau des options. (Cela vouspermet,le développeur,de les contrôleret supprime la surcharge desplugins volumineux quifont lamême chose.) Ici,je change le rôle d'auteurpour supprimer leurspublicationspubliées (par défaut),mais leurpermettant demodifier leurspublicationspubliées (ce quin'estpaspossiblepour ce rôlepar défaut) -en utilisant * add_cap * ou * remove_cap *.
/* $edit_role = get_role('author'); $edit_role->add_cap('edit_published_posts'); $edit_role->remove_cap('delete_published_posts'); */
Jegarde unefeuille de calcul avec lagrille de lapage Codexpour les sites quimodifient de cettefaçon,afin queje puisseme rappeler comment les choses sont définies,bien que laisser le code commenté dans votrefichierfunctions.phpfonctionnera. Ne laissezpas cesexemples sans commentaires,ouil écrira dans labase de données à chaque chargement depage!
New Roles and Capabilities - Only run once!
I keep these handy, this is the right way to do them without a plugin. They set a single field (prefix_user_roles) in the options database, and you don't need a plugin to set them. Refer to the Codex page for a list of what capabilities are available and descriptions for what they do. You only need to uncomment one of these blocks, load any page and then comment them again! Here I'm creating a role that's got the capabilities I need:
/* Capabilities */ // To add the new role, using 'international' as the short name and // 'International Blogger' as the displayed name in the User list and edit page: /* add_role('international', 'International Blogger', array( 'read' => true, // True allows that capability, False specifically removes it. 'edit_posts' => true, 'delete_posts' => true, 'edit_published_posts' => true, 'publish_posts' => true, 'edit_files' => true, 'import' => true, 'upload_files' => true //last in array needs no comma! )); */ // To remove one outright or remove one of the defaults: /* remove_role('international'); */
It's sometimes handy to add/remove from an existing role rather than removing and re-adding one. Again, you only need to uncomment it, reload a page and then comment it again. This will store the role/capability properly in the options table. (This allows you, the developer to control them and removes the overhead of the bulky plugins that do the same thing.) Here I'm changing the author role to delete their published posts (the default), but allowing them the capability to edit their published posts (which isn't possible for this role by default)-- using *add_cap* or *remove_cap*.
/* $edit_role = get_role('author'); $edit_role->add_cap('edit_published_posts'); $edit_role->remove_cap('delete_published_posts'); */
I keep a spreadsheet with the grid from the Codex page for sites that modify this way, so I can remember how things are set, though leaving the commented out code in your functions.php file will work to. Don't leave these examples uncommented, or it will write to the database with each page load!
-
Lesfonctions queje mentionne ci-dessus écrivent dans un champ de labase de données d'options.Les commenteret les décommenterest la voie à suivre.Ilexiste despluginspour les rôles d'utilisateur,mais si vous utilisez lesfonctionsmentionnées ci-dessus,vousne pouvezpas laisser cesfonctionsen cours d'exécutionet vous N'AVEZ PASbesoin de les définirplus d'unefois ou de les définiren fonction dufait qu'un utilisateur spécifique accède à quelque chose.Si vous le souhaitez,configurez cet utilisateur avec un rôle spécifiqueet unique.Et reportez-vous au codex,tout ce quej'écris ci-dessusest correct à 100% si vous lefaites sansplugin. Pourpresquetous les cas,vousne devez définir les rôles des utilisateurs qu'une seulefois.The functions I mention above write to a field in the options database. Commenting and uncommenting them is the way to go. There are plugins for user roles, but if you use the functions mention above, you cannot leave these functions running, and you DO NOT need to set them more than once, or set them based on if a specific user is accessing something. If you want that, set that user up with a specific, unique role. And refer to the codex, everything I write above is 100% correct if you do it without a plugin. For nearly every case, you only need to set the user roles once.
- 0
- 2011-02-02
- tomcat23
-
@tomcat23: Pourillustrer,je l'aienveloppé dans unefonctionpour ajouter uniquement le rôle,quandiln'existepas déjà.Une autrenote:je suppose qu'il seraitplusfacile deplacer le rôle quelquepart dans la hiérarchie des rôles,en récupérant lesmajuscules d'un rôleintégré,puisen ajoutant/supprimant les capacités du rôleintégré.Cela rendraitplus clairet plusfacile à retenir si ses casquettes sontplacées quelquepartentre lesex.administrateuret éditeur.- J'espère que celane vous dérangepas quej'ai édité votre réponse.Si vous lefaites,veuillez le renvoyer.:)@tomcat23: To illustrate, i wrapped it up in a function to only add the role, when it doesn't already exists. Another note: I guess it would be easier to place the role somewhere in the role hierarchy, with retrieving the caps from some built in role and then add/remove the capabilities from the built in role. Would make it more clear and easier to remember if it's caps are placed somewhere between ex. admin and editor. - I hope you don't mind that i edited your answer. If you do, pls role it back. :)
- 0
- 2011-03-01
- kaiser
-
Jemaintiensma réponse commeje l'ai laissée.Votrefonctionmanque lepointet nefournitpas lamême réponse quemontexte.Je suis aussi assezimpoli de votrepart de changermon codeet de répondre.I stand by my answer as I left it. Your function misses the point and doesn't provide the same answer as my text. I also it's quite rude of you do change my code and answer.
- 0
- 2011-03-11
- tomcat23
-
Non seulement cela,mais votrefonctionne faitpas lamême chose quemon code.Votrefonctionne laisse qu'une seule vérificationen place,get_role ('international',cen'estpasnécessaire! J'ai utilisé ce codepour déplacer un client qui avait un serveur qui utilisaitphp4et nepouvait doncpas utiliser leplugin role scoper qu'ils avaientutilisé,qui était uniquementphp5. (Et c'était le seulplugin qui avaitbesoin dephp5pour leurinstallation.) Entant que développeur,j'ai vu que la seule raisonpour laquelleilsen avaientbesoin était de configurer quelques rôleset demodifier certainesfonctionnalités.code,**ma réponse originaleici **,est de savoir commentfaire cela!Not only that, but your function doesn't do the same thing as my code. Your function leaves just one more check in place, get_role('international', that isn't needed! I used this code for moving a client who had a server that was using php4 and therefore couldn't use the role scoper plugin they had been using, which was php5 only. (And was the only plugin that needed php5 for their install.) As a developer, I saw that the only reason they needed it was to set up a couple of roles and change some capabilities. And this code, **my original answer here**, is how to do that!
- 0
- 2011-03-12
- tomcat23
-
Vousn'avezpasbesoin,ni ne devriez,envelopper ceci dans unefonction.Vousen avezjustebesoinpour définir correctement les rôleset les capacités.Si vous voulezjouer aveceux,ilexiste d'excellentsplugins (bien quegonflés)pour cela. Si vous comprenez les rôleset les capacités de wordpresset que vousne vous contentezpas defouiller avec,et que vousn'écrivezpas votrepropreplugin,alors voici comment lefaire correctement.Veuillezne pasmodifiermon code.Je l'aifait reculer.Votre habillage defonctionest dans l'histoire quetout lemondepeut voir,même sije ne suispas d'accord avec ce que vous avezfait.You do not need to, nor should you, wrap this in a function. You just need it to properly set the roles and capabilities. If you want to play around with them, there's some great (though bloated) plugins for that. If you understand the roles and capabilities in wordpress and aren't just poking around with it, and aren't writing your own plugin, then this is how to do it right. Please don't edit my code. I have rolled it back. Your function wrapping is in the history for anyone to see, though I disagree with what you have done.
- 0
- 2011-03-12
- tomcat23
-
Pour clarifier davantage,vous **n'avezpasbesoin ** d'envelopper cela dans unefonction ou defaire des vérifications administratives.** add_role (),remove_role (),add_cap ()et remove_cap (),commeje lemontre dansma réponse d'originen'ontpasbesoin d'êtreexécutésencoreet encore -ils définissent simplement un champ dans latable des options quin'apasbesoin deêtre écritencoreet encore - c'estpourquoi votre wrapper defonctionestfaux. ** Je sais,vous ajoutez une action à after_setup_theme,mais la définition d'un rôle avec ce hookn'estpas ce quema réponseportait.(Etgénéralement,les rôlesn'ontpasbesoin d'êtrefournis avec desthèmes.)To clarify further, you **do not need** to wrap this in a function or do admin checks. **add_role(), remove_role(), add_cap() and remove_cap(), as I show in my original answer do not need to be executed over and over -- they just set a field in the options table that does not need to be written to over and over again -- which is why your function wrapper is wrong.** I know, you are adding an action to after_setup_theme, but setting a role with that hook is not what my answer was about. (And generally roles don't need to come packaged with themes.)
- 0
- 2011-03-12
- tomcat23
-
Puh ... Commeje l'ai écrit: "J'espère que celane vous dérangepas quej'ai édité votre réponse. Si vous lefaites,veuillez la redéfinir. :)".Vous l'avez rappelé,expliqué votre raisonet devinez quoi: c'estbon.Alors calme-toi.Maispour vous offrir lamême quantité d'explications:j'emballetoujours des choses dans desfonctionset les ajoute àmon dossier defichiers detest demonthème.De cettefaçon,je peuxfacilementtester destrucsparex.WA répondet les ajoute rapidement sij'aibesoin de quelque chose,donc l'envelopper dans unefonctionest ok.Deplus,ilestplusfacile de désactiver (uniquement l'appel add_action)et d'autoriser les commentaires doc avec/**/au lieu de//commentairesmultilignes.Celaparle demon «pourquoi».Puh... As i wrote: "I hope you don't mind that i edited your answer. If you do, pls role it back. :)". You roled it back, explained your reason and guess what: It's ok. So calm down. But to offer you the same amount of explanation: I always wrap stuff in functions and add it to my test files folder of my theme. This way i can easily test stuff for ex. WA answers and add them quickly if i need anything, so wrapping it in a function is ok. Further more it's easier to disable (only the add_action call) and allow doc-comments with /**/ instead of multiline // comments. That much about my "why".
- 0
- 2011-03-12
- kaiser
-
@tomcat23 - Notez quenous sommes une communauté qui se soutient les uns les autres,et non une communauté qui se défie,saufpour lefaire académiquement.Comme vous le voyez dans la réponse de @ kaiser,ilessayait simplement d'aider.@tomcat23 - Note that we are a community that is supportive of each other, not one that challenges each other except to do so academically. As you see from @kaiser's response, he was just trying to help.
- 0
- 2011-03-12
- MikeSchinkel
-
@MikeSchinkel Jeme souviens qu'il y aeu deux commentaires de @kaiser le 1erfévrier,c'estpourquoij'ai répondu commeje l'aifait.(Vous êtesmodérateur,pouvez-vous voir s'il l'afait? Parce queje nepensepas queje metrompeen pensant qu'il avait 2 commentaires surmon utilisationtout simplementpasbien avec lui.) Jene pensaispas quemon code oumonexplication avaitbesoin d'aideet lui a dit le 1erfévrier.Je reviens quelquetempsplustardet constate qu'il a changémon code -mapremièreexposition à l'aspect "wiki" de ce site -et j'étais,àmon avis,àjustetitreennuyépar lefait que simontexteet mes commentaires discutent d'une chose,le code lui-mêmeétait différent.@MikeSchinkel I recall there being two comments by @kaiser on Feb 1, which is why I responded then how I did. (You are moderator, can you see if he did? Because I don't think I'm wrong in thinking he had 2 comments about my usage just not sitting well with him.) I did not feel that my code or explanation needed help and told him so on Feb 1st. I come back some time later and find that he's changed my code -- my first exposure to this site's "wiki" aspect -- and I was, in my opinion, justifiably annoyed that while my text and comments discuss one thing, the code itself was different.
- 0
- 2011-03-13
- tomcat23
-
Ma réponseest dans l'esprit de la questioninitiale.C'est _mon_ code utile,c'est ce quifonctionnebien pourmoiet jene l'utilisepasenveloppé dans unefonction.Si @kaiser avait voulu répondre à cette question avec le codeenveloppé dans unefonctionet attaché à un hook,ilesttoujours libre de lefaire. Encore unefois,@kaiser ce que vous avezfaiten changeantmon codemaispasmontexte étaitpréjudiciable à d'autrespersonnes qui venaientici,le voyaientet trouvaient quema discussion sur le coden'avait aucun sens.C'estpourquoije trouve que c'estimpoli de votrepart defaire ce que vous avezfaitet pourquoij'ai répondu hier aussi durement quemoi.My answer is in the spirit of the original question. This is _my_ useful code, this is what works well for me and I don't use it wrapped in a function. If @kaiser had wanted to answer this question with the code wrapped in a function and attached to a hook, he's still free to do so. Again, @kaiser what you did in changing my code but not my text was detrimental to other people who would come here, see it and find that my discussion of the code made no sense. That is why I feel it is rude of you to do what you did and why I responded yesterday as harshly as I did.
- 0
- 2011-03-13
- tomcat23
-
@tomcat23 - Eau sous lepont à ce stade.Tout ce queje dis,c'est queje ne suispasintéressé àblâmer,juste à avoir lapaixpourtout lemonde qui avance.:)@tomcat23 - Water under the bridge at this point. All I'm saying is, I'm not interested in placing blame, just in having peace for everyone moving forward. :)
- 1
- 2011-03-13
- MikeSchinkel
-
@MikeSchinkel Oui,vous avez raison. @kaiser Mesexcuses sije vous aifait desinsultes.@MikeSchinkel Yes, you are right. @kaiser My apologies if I've caused you insult.
- 2
- 2011-03-13
- tomcat23
-
@MikeSchinkel:merci d'avoir ramené lapaix. @ Tomcat23: Non,vousne l'avezpasfait.Jepeuxfaireface à cegenre de critique.Mesexcuses aussi.@MikeSchinkel: thanks for bringing peace back in. @tomcat23: No, you didn't. I can deal with that sort of criticism. My apologies too.
- 1
- 2011-03-13
- kaiser
-
- 2010-11-14
Activer les codes courts dans les widgets
// shortcode in widgets if ( !is_admin() ){ add_filter('widget_text', 'do_shortcode', 11); }
Enable shortcodes in widgets
// shortcode in widgets if ( !is_admin() ){ add_filter('widget_text', 'do_shortcode', 11); }
-
- 2010-12-28
Pied depage administrateurpersonnalisé de Wordpress
//personnaliser letexte dupied depage de l'administrateur function custom_admin_footer () { echo 'ajoutezici votretexteet html depied depagepersonnalisés'; } add_filter ('admin_footer_text','custom_admin_footer');
Je l'utilisepour les sites clients comme simplepoint de référencepourme contacteren tant que développeur.
Wordpress Custom Admin Footer
// customize admin footer text function custom_admin_footer() { echo 'add your custom footer text and html here'; } add_filter('admin_footer_text', 'custom_admin_footer');
I use this for client sites as a simple point of reference to contact me as the dev.
-
- 2010-09-12
Fonction de désactivation desflux RSS
Testé sur: Wordpress 3.0.1
Vouspouvez désactiver lesflux RSS si vous souhaitez conserver votre site Web Wordpress comme statique.
Vouspouvez utiliser cettefonction:
function fb_disable_feed() { wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') ); } add_action('do_feed', 'fb_disable_feed', 1); add_action('do_feed_rdf', 'fb_disable_feed', 1); add_action('do_feed_rss', 'fb_disable_feed', 1); add_action('do_feed_rss2', 'fb_disable_feed', 1); add_action('do_feed_atom', 'fb_disable_feed', 1);
Function to Disable RSS Feeds
Tested on: Wordpress 3.0.1
You can disable RSS feeds If you want to maintain your Wordpress based website as static.
You can Use this function :
function fb_disable_feed() { wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') ); } add_action('do_feed', 'fb_disable_feed', 1); add_action('do_feed_rdf', 'fb_disable_feed', 1); add_action('do_feed_rss', 'fb_disable_feed', 1); add_action('do_feed_rss2', 'fb_disable_feed', 1); add_action('do_feed_atom', 'fb_disable_feed', 1);
-
Source: http://bueltge.de/wordpress-feeds-deaktivieren/794/(Frank Bueltge)Source: http://bueltge.de/wordpress-feeds-deaktivieren/794/ (Frank Bueltge)
- 0
- 2010-09-16
- fuxia
-
Merci Toscho! la sourceest également disponibleen anglais http://wpengineer.com/287/disable-wordpress-feed/Thanks Toscho! the source is also available in english http://wpengineer.com/287/disable-wordpress-feed/
- 0
- 2010-09-17
- bueltge
-
- 2010-12-28
Remplacez lemessage "Salut"par "Bienvenue"
Avec cettefonction,vouspouvezpersonnaliser lemessage "Howdy"en haut à droite de votre zone d'administration.
Cettefonction utilise JQuerypour changer lemessage "Howdy"en "Welcome"./****** Customize admin message "Howdy" to "Welcome" ******/ $nohowdy = "Welcome"; if (is_admin()) { add_action('init', 'artdev_nohowdy_h'); add_action('admin_footer', 'artdev_nohowdy_f'); } // Load jQuery function artdev_nohowdy_h() { wp_enqueue_script('jquery'); } // Modify function artdev_nohowdy_f() { global $nohowdy; echo <<<JS <script type="text/javascript"> //<![CDATA[ var nohowdy = "$nohowdy"; jQuery('#user_info p') .html( jQuery('#user_info p') .html() .replace(/Howdy/,nohowdy) ); //]]> JS; }
Version PHP,en utilisant lefiltre
gettext
:add_filter('gettext', 'change_howdy', 10, 3); function change_howdy($translated, $text, $domain) { if (!is_admin() || 'default' != $domain) return $translated; if (false !== strpos($translated, 'Howdy')) return str_replace('Howdy', 'Welcome', $translated); return $translated; }
Change the "Howdy" message to "Welcome"
With this function you can customize the "Howdy" message in top right of your admin area.
This function make use of JQuery to change the "Howdy" message to "Welcome"./****** Customize admin message "Howdy" to "Welcome" ******/ $nohowdy = "Welcome"; if (is_admin()) { add_action('init', 'artdev_nohowdy_h'); add_action('admin_footer', 'artdev_nohowdy_f'); } // Load jQuery function artdev_nohowdy_h() { wp_enqueue_script('jquery'); } // Modify function artdev_nohowdy_f() { global $nohowdy; echo <<<JS <script type="text/javascript"> //<![CDATA[ var nohowdy = "$nohowdy"; jQuery('#user_info p') .html( jQuery('#user_info p') .html() .replace(/Howdy/,nohowdy) ); //]]> JS; }
PHP version, using
gettext
filter:add_filter('gettext', 'change_howdy', 10, 3); function change_howdy($translated, $text, $domain) { if (!is_admin() || 'default' != $domain) return $translated; if (false !== strpos($translated, 'Howdy')) return str_replace('Howdy', 'Welcome', $translated); return $translated; }
-
Celane peut-ilpas déjà êtremodifié du côté PHPpourne pas obtenir de sortie dutout?Can't this already be edited on the PHP side so it doesn't get output at all?
- 3
- 2011-02-14
- hakre
-
Celafonctionnebien ici dans les versions 3.0+,maispourquoipas dans les anciennes versions?Vérifiez si un autreplugin que vous utilisezen est responsable.Letexteici remplacépar JQuery,peut-être unplugin JQuery?It's working fine here in 3.0+ versions for sure, but why not in older versions? Check if any other plugin you use is responsible for this. The text here replaced with JQuery, maybe a JQuery plugin?
- 0
- 2011-02-14
- Philip
-
- 2011-01-26
Inclure lestypes depublicationpersonnalisés dans "En cemoment"tableau debord administrateur
Celainclura vostypes depublicationspersonnaliséset lenombre depublicationspour chaquetype dans la section "En cemoment" widget detableau debord.
// ADD CUSTOM POST TYPES TO THE 'RIGHT NOW' DASHBOARD WIDGET function wph_right_now_content_table_end() { $args = array( 'public' => true , 'show_ui' => true , '_builtin' => false ); $output = 'object'; $operator = 'and'; $post_types = get_post_types( $args , $output , $operator ); foreach( $post_types as $post_type ) { $num_posts = wp_count_posts( $post_type->name ); $num = number_format_i18n( $num_posts->publish ); $text = _n( $post_type->labels->singular_name, $post_type->labels->name , intval( $num_posts->publish ) ); if ( current_user_can( 'edit_posts' ) ) { $num = "<a href='edit.php?post_type=$post_type->name'>$num</a>"; $text = "<a href='edit.php?post_type=$post_type->name'>$text</a>"; } echo '<tr><td class="first b b-' . $post_type->name . '">' . $num . '</td>'; echo '<td class="t ' . $post_type->name . '">' . $text . '</td></tr>'; } $taxonomies = get_taxonomies( $args , $output , $operator ); foreach( $taxonomies as $taxonomy ) { $num_terms = wp_count_terms( $taxonomy->name ); $num = number_format_i18n( $num_terms ); $text = _n( $taxonomy->labels->singular_name, $taxonomy->labels->name , intval( $num_terms )); if ( current_user_can( 'manage_categories' ) ) { $num = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num</a>"; $text = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$text</a>"; } echo '<tr><td class="first b b-' . $taxonomy->name . '">' . $num . '</td>'; echo '<td class="t ' . $taxonomy->name . '">' . $text . '</td></tr>'; } } add_action( 'right_now_content_table_end' , 'wph_right_now_content_table_end' );
Include custom post types in "Right Now" admin dashboard
This will include your custom post types and the post counts for each type in the "Right Now" dashboard widget.
// ADD CUSTOM POST TYPES TO THE 'RIGHT NOW' DASHBOARD WIDGET function wph_right_now_content_table_end() { $args = array( 'public' => true , 'show_ui' => true , '_builtin' => false ); $output = 'object'; $operator = 'and'; $post_types = get_post_types( $args , $output , $operator ); foreach( $post_types as $post_type ) { $num_posts = wp_count_posts( $post_type->name ); $num = number_format_i18n( $num_posts->publish ); $text = _n( $post_type->labels->singular_name, $post_type->labels->name , intval( $num_posts->publish ) ); if ( current_user_can( 'edit_posts' ) ) { $num = "<a href='edit.php?post_type=$post_type->name'>$num</a>"; $text = "<a href='edit.php?post_type=$post_type->name'>$text</a>"; } echo '<tr><td class="first b b-' . $post_type->name . '">' . $num . '</td>'; echo '<td class="t ' . $post_type->name . '">' . $text . '</td></tr>'; } $taxonomies = get_taxonomies( $args , $output , $operator ); foreach( $taxonomies as $taxonomy ) { $num_terms = wp_count_terms( $taxonomy->name ); $num = number_format_i18n( $num_terms ); $text = _n( $taxonomy->labels->singular_name, $taxonomy->labels->name , intval( $num_terms )); if ( current_user_can( 'manage_categories' ) ) { $num = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num</a>"; $text = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$text</a>"; } echo '<tr><td class="first b b-' . $taxonomy->name . '">' . $num . '</td>'; echo '<td class="t ' . $taxonomy->name . '">' . $text . '</td></tr>'; } } add_action( 'right_now_content_table_end' , 'wph_right_now_content_table_end' );
-
Soudain,il y avait untype demessage "WooFramework Internal Container" apparaissant dans le widget RightNow!...un argument supplémentaireestnécessaire `` show_ui '=>true`et c'esttout KmaintenantSuddenly, there was a post type "WooFramework Internal Container" appearing in the RightNow widget! . . . one extra argument is needed `'show_ui' => true` and it's all K now
- 0
- 2012-04-04
- brasofilo
-
C'estexactement lamême chose quej'avaispubliée ci-dessus.This is the same exact thing I had posted above.
- 0
- 2012-12-09
- jaredwilli
-
- 2010-11-09
Ajouter unformulaire de recherche codex à l’en-tête dutableau debord
Il s'agit d'unmoyen simple d'ajouter unformulaire de recherche de codex à l'en-tête dutableau debord,en haut à droite à côté dumenu déroulant des liens rapides.
/** * ADD WP CODEX SEARCH FORM TO DASHBOARD HEADER */ function wp_codex_search_form() { echo '<form target="_blank" method="get" action="http://wordpress.org/search/do-search.php" class="alignright" style="margin: 11px 5px 0;"> <input type="text" onblur="this.value=(this.value==\'\') ? \'Search the Codex\' : this.value;" onfocus="this.value=(this.value==\'Search the Codex\') ? \'\' : this.value;" maxlength="150" value="Search the Codex" name="search" class="text"> <input type="submit" value="Go" class="button" /> </form>'; } if( current_user_can( 'manage_plugins' )) { // The number 11 needs to be a 10 for this to work! add_filter( 'in_admin_header', 'wp_codex_search_form', 11 ); }
Add a codex search form to the dashboard header
This is a simple way to add a codex search form to the dashboard header, on the top-right next to the quicklinks drop-down.
/** * ADD WP CODEX SEARCH FORM TO DASHBOARD HEADER */ function wp_codex_search_form() { echo '<form target="_blank" method="get" action="http://wordpress.org/search/do-search.php" class="alignright" style="margin: 11px 5px 0;"> <input type="text" onblur="this.value=(this.value==\'\') ? \'Search the Codex\' : this.value;" onfocus="this.value=(this.value==\'Search the Codex\') ? \'\' : this.value;" maxlength="150" value="Search the Codex" name="search" class="text"> <input type="submit" value="Go" class="button" /> </form>'; } if( current_user_can( 'manage_plugins' )) { // The number 11 needs to be a 10 for this to work! add_filter( 'in_admin_header', 'wp_codex_search_form', 11 ); }
-
pouvez-vousmettre àjour ce codepourmontrer comment celane s'affiche qu'aux utilisateurs avec un rôle spécifique (enparticulier les administrateurs)?can you update this code to show how this only gets displayed to users with a specific role (specifically administrators)?
- 0
- 2011-02-22
- NetConstructor.com
-
@ NetConstructor.com Je l'ai éditépourmontrer si current_user_cangérer lesplugins,puis ajouter lefiltre.C'est si simple.@NetConstructor.com I edited it to show if current_user_can manage plugins, then add the filter. It's that simple.
- 1
- 2011-02-23
- jaredwilli
-
Celafonctionne-t-iltoujours dans la version actuelle de WP ... Jene pouvaispas lefairefonctionnerDoes this still work in the current WP version... I couldn't get it to work
- 1
- 2012-02-15
- Zach Lysobey
-
J'aiencapsulé le add_filter dans cet appel à l'action: ** add_action ('plugins_loaded','pluginInit'); **,puis `functionpluginInit () {if ... add_filter (...)}` - -je suisexécuter ceci dans WP 3.4-alpha,et a dû utiliser **in_admin_footer **I encapsulated the add_filter in this action call: **add_action('plugins_loaded', 'pluginInit');**, and then `function pluginInit(){if...add_filter(...)}` - - i'm running this in WP 3.4-alpha, and had to use **in_admin_footer**
- 0
- 2012-04-02
- brasofilo
-
- 2010-11-14
Nouvelle colonne de lamédiathèquepour rattacher desimages
Ce code ajoute unenouvelle colonne à lapage Médiathèque vouspermettant de rattacher desimages
add_filter("manage_upload_columns", 'upload_columns'); add_action("manage_media_custom_column", 'media_custom_columns', 0, 2); function upload_columns($columns) { unset($columns['parent']); $columns['better_parent'] = "Parent"; return $columns; } function media_custom_columns($column_name, $id) { $post = get_post($id); if($column_name != 'better_parent') return; if ( $post->post_parent > 0 ) { if ( get_post($post->post_parent) ) { $title =_draft_or_post_title($post->post_parent); } ?> <strong><a href="<?php echo get_edit_post_link( $post->post_parent ); ?>"><?php echo $title ?></a></strong>, <?php echo get_the_time(__('Y/m/d')); ?> <br /> <a class="hide-if-no-js" onclick="findPosts.open('media[]','<?php echo $post->ID ?>');return false;" href="#the-list"><?php _e('Re-Attach'); ?></a> <?php } else { ?> <?php _e('(Unattached)'); ?><br /> <a class="hide-if-no-js" onclick="findPosts.open('media[]','<?php echo $post->ID ?>');return false;" href="#the-list"><?php _e('Attach'); ?></a> <?php } }
New Media Library Column to Re-Attach Images
This code adds a new column to the Media Library Page allowing you to re-attach images
add_filter("manage_upload_columns", 'upload_columns'); add_action("manage_media_custom_column", 'media_custom_columns', 0, 2); function upload_columns($columns) { unset($columns['parent']); $columns['better_parent'] = "Parent"; return $columns; } function media_custom_columns($column_name, $id) { $post = get_post($id); if($column_name != 'better_parent') return; if ( $post->post_parent > 0 ) { if ( get_post($post->post_parent) ) { $title =_draft_or_post_title($post->post_parent); } ?> <strong><a href="<?php echo get_edit_post_link( $post->post_parent ); ?>"><?php echo $title ?></a></strong>, <?php echo get_the_time(__('Y/m/d')); ?> <br /> <a class="hide-if-no-js" onclick="findPosts.open('media[]','<?php echo $post->ID ?>');return false;" href="#the-list"><?php _e('Re-Attach'); ?></a> <?php } else { ?> <?php _e('(Unattached)'); ?><br /> <a class="hide-if-no-js" onclick="findPosts.open('media[]','<?php echo $post->ID ?>');return false;" href="#the-list"><?php _e('Attach'); ?></a> <?php } }
-
- 2010-11-16
Définir lesparamètrespar défaut de l'éditeur sur WYSIWYG ou HTML
function my_default_editor() { $r = 'tinymce'; // html or tinymce return $r; } add_filter( 'wp_default_editor', 'my_default_editor' );
Voici comment supprimer l'éditeur HTML
jQuery(document).ready(function($) { $("#edButtonHTML").remove(); });
MISE À JOUR voici une autrefaçon de définir l'éditeurpar défaut sur HTML
add_filter('wp_default_editor', create_function('', 'return "html";'));
Set Editor Defaults to WYSIWYG or HTML
function my_default_editor() { $r = 'tinymce'; // html or tinymce return $r; } add_filter( 'wp_default_editor', 'my_default_editor' );
Here is how to remove the HTML Editor
jQuery(document).ready(function($) { $("#edButtonHTML").remove(); });
UPDATED here is another way to set the default editor to HTML
add_filter('wp_default_editor', create_function('', 'return "html";'));
-
voirplus d'informations sur l'origine: http://wpengineer.com/1946/disable-html-editor-wordpress/see more informations on the origin: http://wpengineer.com/1946/disable-html-editor-wordpress/
- 0
- 2010-11-17
- bueltge
-
- 2010-09-30
Supprimer Author Metabox/Options & amp; Déplacer vers Publish MetaBox
Testé sur: Wordpress 3.0.1
L'une des choses quime rendentfouest une zone d'administration Wordpressencombrée. L'un des éléments queje configure désormaistoujours depuis le début dansmonfichierfunctions.phpest la suppression de la MetaBox Auteuret des Options d'écran,puis l'ajout de l'option dans lamétabox depublication. Àmon avis,cela a du senset garder les chosespropres. Cela respecte également les autorisations applicables.
Pour atteindre cet objectif,copiezet collez simplement le code suivant dans votrefichierfunctions.php.
Si vouspensez qu'ilexiste unemeilleurefaçon deprocéder,veuillez suggérer.
REMARQUE: MISE À JOUR DU CODE POUR RÉSOUDRE UN PROBLÈME DE CODAGE
// MOVE THE AUTHOR METABOX INTO THE PUBLISH METABOX add_action( 'admin_menu', 'remove_author_metabox' ); add_action( 'post_submitbox_misc_actions', 'move_author_to_publish_metabox' ); function remove_author_metabox() { remove_meta_box( 'authordiv', 'post', 'normal' ); } function move_author_to_publish_metabox() { global $post_ID; $post = get_post( $post_ID ); echo '<div id="author" class="misc-pub-section" style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;">Author: '; post_author_meta_box( $post ); echo '</div>'; }
Remove Author Metabox/Options & Move to Publish MetaBox
Tested on: Wordpress 3.0.1
One of the things that drive me crazy is a cluttered Wordpress Admin area. One of the elements which I now always setup from the start in my functions.php file is removing the Author MetaBox and Screen Options and then adding the option into the publish metabox. In my opinion this just makes sense and keep things clean. This also respects applicable permissions.
To achieve this goal, just copy and past the following code into your functions.php file.
If you feel there is a better way of doing this please suggest.
NOTE: UPDATED THE CODE TO FIX A CODING ISSUE
// MOVE THE AUTHOR METABOX INTO THE PUBLISH METABOX add_action( 'admin_menu', 'remove_author_metabox' ); add_action( 'post_submitbox_misc_actions', 'move_author_to_publish_metabox' ); function remove_author_metabox() { remove_meta_box( 'authordiv', 'post', 'normal' ); } function move_author_to_publish_metabox() { global $post_ID; $post = get_post( $post_ID ); echo '<div id="author" class="misc-pub-section" style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;">Author: '; post_author_meta_box( $post ); echo '</div>'; }
-
Iln'ajoutepas la Metabox Auteur àmaboîte depublication.J'aipensé que c'étaitparce qu'iln'y avaitpas de `add_action`pour lafonction`move_author_to_publish_box` alorsj'ai ajouté `add_action ('admin_menu','move_author_to_publish_box');`mais celam'a donné une ** "Erreurfatale: Appel à lafonctionnon définiepost_author_meta_box () "**It doesn't add the Author Metabox to my Publish Box. I figured it was because there was no `add_action` for the `move_author_to_publish_box` function so I added `add_action('admin_menu', 'move_author_to_publish_box');` but that gave me a **"Fatal error: Call to undefined function post_author_meta_box()"**
- 0
- 2010-12-05
- matt
-
quelle version de wordpress utilisez-vous?what version of wordpress are you using?
- 0
- 2010-12-06
- NetConstructor.com
-
Et comment ajouteriez-vous l'auteur àpublier?Sur admin_init ou sur admin_menune fonctionneraitpas.And how would you add the author to publish? On admin_init or on admin_menu wouldn't work.
- 0
- 2011-02-01
- kaiser
-
@kaiser - Jene suispas sûr de comprendre votre question.Ce code supprime simplement lamétabox "auteur"et place l'option de sélection de l'auteur dans lamétabox "publier".@kaiser -- I am not sure I understand your question. This code just removes the "author" metabox and places the option to select the author into the "publish" metabox.
- 0
- 2011-02-01
- NetConstructor.com
-
@NetConstructor: Je viens de luifaire untest hier (3.0.4)et oui,laboîte auteur a disparu,maispas déplacée vers laboîte depublication.Lorsqueje regarde le code,je ne vois aucunmoyen,car lafonctionn'estnullepart déclenchée ... vous venez d'ajouter lefichier remove_author_box ()fn au hook d'action admin_menu,maispas lefichiermove_author_to_publish_box ()fn.@NetConstructor: I just gave it a test yesterday (3.0.4) and yes, the author box is gone, but not moved to the publish box. When looking at the code i can't see any way, because the function is no where triggered... you just added the remove_author_box() fn to admin_menu action hook, but not the move_author_to_publish_box() fn.
- 1
- 2011-02-01
- kaiser
-
@kaiser - votre droit,après avoirexaminé cela,j'ai remarqué leproblème.J'aimis àjour le code dansma réponse,supprimez simplementtout ce que vous avezinclus aupréalableet juste après le code complet ci-dessus.Faites-moi savoir si cela corrige les choses.Votezpour la questionet répondez sielle résout leproblème - CH :)@kaiser -- your right, after reviewing this I did noticed the issue. I updated the code in my answer so just delete everything you included from this before hand and just past in the full code above. Let me know if this fixes things. Vote up the question and answer if it fixes the problem - CH :)
- 1
- 2011-02-01
- NetConstructor.com
-
@ CH/NC: Bien sûr que celafonctionne,vousn'avezmêmepasbesoin de letester.Voteen hausse:n/p.Pourrait/devrait être étendupour contenir certains des autres conneries/cluter aussi ... (discussions,vignette depublication).Jene vaispasmodifier votre réponse,mais si vous avez unpeu detemps,cela vaudraitmême lapeine d'un article deblog.:)@CH/NC: Sure it works, don't even have to test it. Voting up: n/p. Could/Should be extended to hold some of the other crap/cluter too... (discussions, post thumbnail). I'm not going to mod your answer, but if you got some time, it would even be worth a blog-post. :)
- 0
- 2011-02-01
- kaiser
-
@kaiser - vousne savezpasexactement où vousen voyez la valeur?Mon objectif était simplement de supprimer certaines desmétaboxes qui étaient supplémentaireset inutilestelles que les slugset les auteurs.@kaiser -- not exactly sure where you see value in this? My objective was just to remove some of the metaboxes which were extra and unneeded such as slugs and authors.
- 0
- 2011-02-02
- NetConstructor.com
-
@you: Non,je vois absolument l'avantage.Vousne m'avezpas seulementmal compris,vousm'avezmal compris de 180 degrés.J'ai dit que c'étaittellementbien que cela devrait a) être étendu aux discussionset aux vignetteset b) avoir un article deblog à ce sujet "désencombrer lespages d'édition de contenu" ouplus.Edit: Sans avoirbesoin detests,je sais que celafonctionne.@you: No, i absolutely see the benefit. You didn't only missunderstand me, you got me wrong by 180 degree. I said that it's that good that it should a) be extended to discussions & thumbnails and b) have a blog post about it "decluttering content edit pages" or so. Edit: With no need for testing means, that i know that it works.
- 0
- 2011-02-02
- kaiser
-
@kaiser - appréciez le compliment,mais ce queje ne comprendstoujourspas,c'est comment vous voyez qu'il serait avantageuxpour les utilisateurs d'avoir des discussions ou desminiaturesintégrées dans lamétabox depublication.Jen'ai vu que l'avantage de supprimer lesmétabox sluget author,car ceux-ci devraient logiquement setrouver dans lamétabox depublication.Suis-jetoujoursmal compris votrepoint?@kaiser -- appreciate the compliment however what I still don't understand is how you see it would be of benefit to users to have discussions or thumbnails integrated into the publish metabox. I only saw the benefit of removing the slug and author metaboxes as those logically should be within the publish metabox. Am I still misunderstanding your point?
- 0
- 2011-02-03
- NetConstructor.com
-
@NC: Non,tum'as raison.Pourmoi,cen'estpas "laboîte depublication",maisjuste uneboîteen haut à droitepour lespetites choses.Jene voispas lanécessité d'avoir une case distinctepour chaque ligne detexte "ajouter une vignette" ou les deux cases à cocher des discussions.Rien d'autre.@NC: No, you got me right. For me it's not "the publish box", but just a box on the upper right side for small stuff. I don't see a need to have a separate box for each the single "add thumbnail" text line or the two checkboxes from discussions. Nothing else.
- 0
- 2011-02-03
- kaiser
-
- 2010-11-05
Déterminer rapidement le serveur & amp; Détails de l'environnement
Si vous avezplusieurs serveurset plusieursenvironnementstels que desenvironnements de développement,d'assurance qualitéet deproduction,celapeut êtretrès utile.
Pourmes systèmes,l'environnementest déterminépar les 3premières lettres dunom d'hôte,mais celapourraitfacilement être changéen ce qui convient à vosbesoins.
add_action( 'admin_notices', 'report_environment_status', 3 ); // Report on which server and environment details function report_environment_status() { $server = php_uname('n'); switch (strtolower(substr($server,0,3))) { case 'pXX': $msg = "PRODUCTION"; break; case 'qXX': $msg = "QA"; break; case 'dXX': $msg = "DEVELOPMENT"; break; default : $msg = 'UNKNOWN'; } echo "<div id='update-nag'>"; echo "<b>You are in the $msg environment. (Server: $server)</b>"; echo "</div>"; }
Celam'a évité àmaintes reprises d'effectuer desmises àjour dans lemauvaisenvironnement.
Vouspouvez également letransformeren pluginet l'activeren réseaupour quetous les sites reçoivent lanotification.
Quickly Determine Server & Environment Details
If you have multiple servers and multiple environments such as development, QA, and production environments, this can be very useful.
For my systems, environment is determined by the first 3 letters of the hostname, but this could easily be changed to whatever suits your needs.
add_action( 'admin_notices', 'report_environment_status', 3 ); // Report on which server and environment details function report_environment_status() { $server = php_uname('n'); switch (strtolower(substr($server,0,3))) { case 'pXX': $msg = "PRODUCTION"; break; case 'qXX': $msg = "QA"; break; case 'dXX': $msg = "DEVELOPMENT"; break; default : $msg = 'UNKNOWN'; } echo "<div id='update-nag'>"; echo "<b>You are in the $msg environment. (Server: $server)</b>"; echo "</div>"; }
This has saved me many times from making updates to the wrong environment.
You can also turn this into a plugin and network activate it so all sites get the notification.
-
mercipour cettepièce.Pourriez-vous s'il vousplaît élaborer unpeuplus sur celaet sur différents cas d'utilisation?Jepense que ce serait également TRÈS utilepourmoiet pour les autres si vouspouviez éventuellementincluretout autre code que vous utilisez lorsque vousexécutez différentes versions de développement de code.Deplus,si vous utilisez unemanière astucieuse de déplacer un site du développement à laproduction ou demigrer d'un domaine vers un autre.Toutes ces choses sonttrès utiles.Enfin,utilisez-vousn'importe queltype de client subversion lors de lamise àjour de vosfichiers?Si oui,faites-vous quelque chose de spécifiquepour cela?thanks for this piece. Could you please elaborate a bit more on this and different usage cases? I think it would also be VERY helpful to me and others if you could possibly include any other code which you utilize when your running different development versions of code. Also, if you utilize a slick way of moving a site from development to production or migrate from one domain to a different one. All these things are very helpful. Finally, do you use any type of subversion client when updating your files? If so, is there anything specific you do for this?
- 0
- 2010-11-05
- NetConstructor.com
-
Veuillezne pasmarquer cela comme la réponse.Sinon,cette listene fonctionnerapas.Please don't mark this as the answer. Otherwise this listing won't work.
- 0
- 2010-11-06
- hakre
-
Jepense qu'il seraitpréférable d'utiliser différentes classes CSS sur lemessage,afin que lesmessagespuissent avoir des couleurs d'arrière-plan différentes dans lesenvironnementsen plus d'avoirjuste untexte légèrement différent.Sinon,je pense que vous arrêteriez de remarquer les différences detexte assez rapidement.I think it'd be better to use different CSS classes on the message, so that the messages could have different background colors in environments in addition to just having slightly different text. Otherwise I think you'd stop noticing the text differences pretty quickly.
- 1
- 2012-01-16
- Ian Dunn
-
- 2010-11-06
Collection demodifications rapides defunction.php
J'ai également quelques ajustementsimpressionnants dans
functions.php
. J'aitrouvé laplupart d'entreeuxen les recherchant aufil des ans.Fin d'extrait
function new_excerpt_more($more) { return '...'; } add_filter('excerpt_more', 'new_excerpt_more');
Remplacer le logo WP Admin
function new_admin_logo() { echo '<style type="text/css">#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/admin_logo.png) !important; }</style>'; } add_action('admin_head', 'new_admin_logo');
WP-Admin Faviconpersonnalisée
function admin_favicon() { echo '<link rel="shortcut icon" type="image/x-icon" href="' . get_bloginfo('template_directory') . '/images/favicon.ico" />'; } add_action( 'admin_head', 'admin_favicon' );
Pied depage d'administrationpersonnalisé
function custom_admin_footer() { echo 'Welcome to my blog! No More Documentation Links!'; } add_filter('admin_footer_text', 'custom_admin_footer');
Collection of quick function.php edits
I have a few awesome tweaks in
functions.php
as well. Found most of these by searching for them over the years.Excerpt Ending
function new_excerpt_more($more) { return '...'; } add_filter('excerpt_more', 'new_excerpt_more');
Replace WP Admin Logo
function new_admin_logo() { echo '<style type="text/css">#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/admin_logo.png) !important; }</style>'; } add_action('admin_head', 'new_admin_logo');
Custom Favicon WP-Admin
function admin_favicon() { echo '<link rel="shortcut icon" type="image/x-icon" href="' . get_bloginfo('template_directory') . '/images/favicon.ico" />'; } add_action( 'admin_head', 'admin_favicon' );
Custom Admin Footer
function custom_admin_footer() { echo 'Welcome to my blog! No More Documentation Links!'; } add_filter('admin_footer_text', 'custom_admin_footer');
-
mercimais ceux-ci ont déjà été ajoutés.thanks but these have already been added.
- 0
- 2010-11-08
- NetConstructor.com
-
pourriez-vous lesparcouriret vous assurer qu'iln'y apas d'entréesen doubleet diviser chacune d'ellesen sapropre réponse au cours desprochaines semaines?could you please go through these and ensure there are no duplicate entires and split each one up into its own answer within the next few weeks?
- 0
- 2011-01-26
- NetConstructor.com
-
- 2010-11-08
Correction: supprimer lesméta-boîtes Wordpresspar défaut
C'étaittrèspratiquemaisil y avait deserreurs
// REMOVE META BOXES FROM DEFAULT POSTS SCREEN function remove_default_post_screen_metaboxes() { remove_meta_box( 'postcustom','post','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','post','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','post','normal' ); // Comments Metabox remove_meta_box( 'trackbacksdiv','post','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','post','normal' ); // Slug Metabox remove_meta_box( 'authordiv','post','normal' ); // Author Metabox } add_action('admin_menu','remove_default_post_screen_metaboxes'); // REMOVE META BOXES FROM DEFAULT PAGES SCREEN function remove_default_page_screen_metaboxes() { global $post_type; remove_meta_box( 'postcustom','page','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','page','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','page','normal' ); // Comments Metabox remove_meta_box('commentsdiv','page','normal'); // Comments remove_meta_box( 'trackbacksdiv','page','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','page','normal' ); // Slug Metabox remove_meta_box( 'authordiv','page','normal' ); // Author Metabox } add_action('admin_menu','remove_default_page_screen_metaboxes');
Fixed: Remove Default Wordpress Meta Boxes
This was very handy but had some errors
// REMOVE META BOXES FROM DEFAULT POSTS SCREEN function remove_default_post_screen_metaboxes() { remove_meta_box( 'postcustom','post','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','post','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','post','normal' ); // Comments Metabox remove_meta_box( 'trackbacksdiv','post','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','post','normal' ); // Slug Metabox remove_meta_box( 'authordiv','post','normal' ); // Author Metabox } add_action('admin_menu','remove_default_post_screen_metaboxes'); // REMOVE META BOXES FROM DEFAULT PAGES SCREEN function remove_default_page_screen_metaboxes() { global $post_type; remove_meta_box( 'postcustom','page','normal' ); // Custom Fields Metabox remove_meta_box( 'postexcerpt','page','normal' ); // Excerpt Metabox remove_meta_box( 'commentstatusdiv','page','normal' ); // Comments Metabox remove_meta_box('commentsdiv','page','normal'); // Comments remove_meta_box( 'trackbacksdiv','page','normal' ); // Talkback Metabox remove_meta_box( 'slugdiv','page','normal' ); // Slug Metabox remove_meta_box( 'authordiv','page','normal' ); // Author Metabox } add_action('admin_menu','remove_default_page_screen_metaboxes');
-
- 2010-11-11
Extension de lapériode de déconnexion automatique
Testé sur: Wordpress 3.0.1
En utilisant le code ci-dessous,vouspouvez augmenter la durée de conservation des cookieset par conséquent,les utilisateurs qui sont connectés restent connectésplus longtemps:
function keep_me_logged_in_for_1_year( $expirein ) { return 31556926; // 1 year in seconds } add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );
Extending Auto Logout Period
Tested on: Wordpress 3.0.1
Using the code below you can increase the time cookies are kept and therefor users who are logged in remain logged in longer:
function keep_me_logged_in_for_1_year( $expirein ) { return 31556926; // 1 year in seconds } add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );
-
il y a une autre astuce quipeut être utilisée quej'aitrouvéeici: http://wpengineer.com/2064/stop-wordpress-from-ever-logging-out/there is another trick which can be used which I found here: http://wpengineer.com/2064/stop-wordpress-from-ever-logging-out/
- 1
- 2010-11-11
- NetConstructor.com
-
Il convient denoter que le délai d'expiration de la sessionest làparmesure de sécurité,donc sonextension/suppression rend votre siteplus vulnérable.It should be noted that the session timeout is there as a security precaution, so extending/removing it makes your site more vulnerable.
- 3
- 2012-01-16
- Ian Dunn
-
- 2010-11-14
Ajouter un & quot; Paramètres & quot; lienpour lesplugins sur lapage de la liste desplugins
Définissez les & quot; Paramètres & quot; lienpour lesplugins sur lapage desplugins dans lebackend WordPress,accèsfacile auxparamètrespour les utilisateurs (le codeest également avec une solutionpour la version WordPresspluspetite 2.9)
// plugin definitions define( 'FB_BASENAME', plugin_basename( __FILE__ ) ); define( 'FB_BASEFOLDER', plugin_basename( dirname( __FILE__ ) ) ); define( 'FB_FILENAME', str_replace( FB_BASEFOLDER.'/', '', plugin_basename(__FILE__) ) ); function filter_plugin_meta($links, $file) { /* create link */ if ( $file == FB_BASENAME ) { array_unshift( $links, sprintf( '<a href="options-general.php?page=%s">%s</a>', FB_FILENAME, __('Settings') ) ); } return $links; } global $wp_version; if ( version_compare( $wp_version, '2.7alpha', '>' ) ) { add_filter( 'plugin_action_links_' . FB_WM_BASENAME, 'filter_plugin_meta', 10, 2); } else { add_filter( 'plugin_action_links', 'filter_plugin_meta', 10, 2 ); }
Add a "Settings" link for plugins on the plugin list page
Set "Settings" link for plugins on plugin-page in WordPress backend, easy to use jump to settings for users (the code is also with an solution for WordPress version smaller 2.9)
// plugin definitions define( 'FB_BASENAME', plugin_basename( __FILE__ ) ); define( 'FB_BASEFOLDER', plugin_basename( dirname( __FILE__ ) ) ); define( 'FB_FILENAME', str_replace( FB_BASEFOLDER.'/', '', plugin_basename(__FILE__) ) ); function filter_plugin_meta($links, $file) { /* create link */ if ( $file == FB_BASENAME ) { array_unshift( $links, sprintf( '<a href="options-general.php?page=%s">%s</a>', FB_FILENAME, __('Settings') ) ); } return $links; } global $wp_version; if ( version_compare( $wp_version, '2.7alpha', '>' ) ) { add_filter( 'plugin_action_links_' . FB_WM_BASENAME, 'filter_plugin_meta', 10, 2); } else { add_filter( 'plugin_action_links', 'filter_plugin_meta', 10, 2 ); }
-
J'aiessayé d'utiliser ce codemaisil semble qu'ilne fonctionnepas sur wordpress 3.1.Pouvez-vous confirmeret mettre àjourI have attempted to use this code but it seem that it does not work on wordpress 3.1. Can you confirm and update
- 0
- 2011-02-22
- NetConstructor.com
-
@ NetConstructor.com J'aimis àjour unepetite offre de l'un demespluginsgratuits,surtousmespluginsfonctionnetrèsbien ce@NetConstructor.com I have update a little bid from one of my free plugins, on all my plugins works fine this
- 0
- 2011-02-28
- bueltge
-
Je souhaite quetous les auteurs deplugins lefassent (pour lesplugins qui ont despages deparamètres,bien sûr) afin que cetype de codene soitpasnécessaire.I wish all plugin authors would do this (for the plugins that have settings pages, of course) so this kind of code wouldn't be necessary.
- 0
- 2011-12-06
- JimmyPena
-
- 2010-12-28
Supprimer le lien automatique des URL dans les commentaires WordPress
remove_filter ('comment_text','make_clickable',9);
Remove Auto Linking of URLs in WordPress Comments
remove_filter('comment_text', 'make_clickable', 9);
-
Agréable!Je cherchais cettefonction `make_clickable ()`pour l'appliquer à `the_content`!Pourquoine l'ont-ilspasfaiten premier lieu?C'est aussi simple que d'ajouter `add_filter ('the_content','make_clickable');` Sinon,celapourrait êtrefait lorsque lapublicationestenregistréeen utilisant un [hook différent] (http://stackoverflow.com/a/5036802/288906)Nice! I was looking for that `make_clickable()` function to apply it to `the_content`! Why didn't they do it in the first place? It's as simple as adding `add_filter( 'the_content', 'make_clickable');` Alternatively it could be done when the post is saved by using a [different hook](http://stackoverflow.com/a/5036802/288906)
- 0
- 2014-01-11
- fregante
-
- 2011-03-19
Ajouter unfiltre demodèle depage à la liste despages
Testé sur: WP 3.1
Ajoute unfiltre demodèle depage à la liste despages,afin que vouspuissiez afficher une liste depages auxquelles unmodèle donnéestjoint.
class Page_Template_Filter { private $templates = array(); public function __construct() { // If it's not the admin area or the current user can't edit pages let's just bail here if( !is_admin() || !current_user_can('edit_pages') ) return; add_action( 'parse_query', array( $this, 'pt_parse_query' ) ); add_action( 'restrict_manage_posts', array( $this, 'pt_restrict_manage_posts' ) ); } public function pt_parse_query( $query ) { global $pagenow, $post_type; if( 'edit.php' != $pagenow ) return; switch( $post_type ) { case 'post': break; case 'page': $this->templates = get_page_templates(); if( empty( $this->templates ) ) return; if( !$this->is_set_template() ) return; $meta_group = array( 'key' => '_wp_page_template', 'value' => $this->get_template() ); set_query_var( 'meta_query', array( $meta_group ) ); break; } } public function pt_restrict_manage_posts() { if( empty( $this->templates ) ) return; $this->template_dropdown(); } private function get_template() { if( $this->is_set_template() ) foreach( $this->templates as $template ) { if( $template != $_GET['page_template'] ) continue; return $template; } return ''; } private function is_set_template() { return (bool) ( isset( $_GET['page_template'] ) && ( in_array( $_GET['page_template'], $this->templates ) ) ); } private function template_dropdown() { ?> <select name="page_template" id="page_template"> <option value=""> - no template - </option> <?php foreach( $this->templates as $name => $file ): ?> <option value="<?php echo $file; ?>"<?php selected( $this->get_template() == $file ); ?>><?php _e( $name ); ?></option> <?php endforeach;?> </select> <?php } } add_action('admin_init', 'load_ptf'); function load_ptf() { $Page_Template_Filter = new Page_Template_Filter; }
Nécessite aumoins 3.1pourfonctionner,bien que la
meta_query
puisse être remplacéepar les anciennesmeta_key
etmeta_value
pour 3.0.Add page template filter to page listing
Tested on: WP 3.1
Adds a page template filter to the page listing, so you can view a list of pages that have a given template attached.
class Page_Template_Filter { private $templates = array(); public function __construct() { // If it's not the admin area or the current user can't edit pages let's just bail here if( !is_admin() || !current_user_can('edit_pages') ) return; add_action( 'parse_query', array( $this, 'pt_parse_query' ) ); add_action( 'restrict_manage_posts', array( $this, 'pt_restrict_manage_posts' ) ); } public function pt_parse_query( $query ) { global $pagenow, $post_type; if( 'edit.php' != $pagenow ) return; switch( $post_type ) { case 'post': break; case 'page': $this->templates = get_page_templates(); if( empty( $this->templates ) ) return; if( !$this->is_set_template() ) return; $meta_group = array( 'key' => '_wp_page_template', 'value' => $this->get_template() ); set_query_var( 'meta_query', array( $meta_group ) ); break; } } public function pt_restrict_manage_posts() { if( empty( $this->templates ) ) return; $this->template_dropdown(); } private function get_template() { if( $this->is_set_template() ) foreach( $this->templates as $template ) { if( $template != $_GET['page_template'] ) continue; return $template; } return ''; } private function is_set_template() { return (bool) ( isset( $_GET['page_template'] ) && ( in_array( $_GET['page_template'], $this->templates ) ) ); } private function template_dropdown() { ?> <select name="page_template" id="page_template"> <option value=""> - no template - </option> <?php foreach( $this->templates as $name => $file ): ?> <option value="<?php echo $file; ?>"<?php selected( $this->get_template() == $file ); ?>><?php _e( $name ); ?></option> <?php endforeach;?> </select> <?php } } add_action('admin_init', 'load_ptf'); function load_ptf() { $Page_Template_Filter = new Page_Template_Filter; }
Requires at least 3.1 to work, though the
meta_query
could be replaced with the oldermeta_key
andmeta_value
for 3.0.-
fonctionneparfaitement,testéen version 3.4-alphaworks flawlessly, tested in 3.4-alpha
- 0
- 2012-04-02
- brasofilo
-
- 2010-09-13
Supprimez XML-RPC lorsqu'iln'estpas utilisépour améliorer lesperformances
Testé sur: Wordpress 3.0.1
WordPress utilise une opération CURLpourtester la capacité SSLpour XML-RPC.Si vous utilisez XML-RPCmaispas,vouspouvez supprimer lefiltre.Il s'agit d'unepetite amélioration desperformances (puisque WPfait un cURL GET sur l'URL httpset soit 1) obtient unmessage refusé,soit 2)expire,et celapeutprendreplus de 5 secondes),mais dansnotre cas,cela aen faitempêchéun délai d'expiration de lapasserelle où unproxyexpirait avant l'expiration de cURL GET,rendant XML-RPCinutilisable.
// Prevents WordPress from testing ssl capability on domain.com/xmlrpc.php?rsd remove_filter('atom_service_url','atom_service_url_filter');
Remove XML-RPC when not in use for performance boost
Tested on: Wordpress 3.0.1
WordPress uses a CURL operation to test for SSL capability for XML-RPC. If you're using XML-RPC but not using, then you can remove the filter. This is a small performance boost (since basically WP does a cURL GET on the https url and either 1) gets a denied message, or 2) times out, and it can take upwards of 5 seconds), but in our case it actually prevented a gateway timeout where a proxy was timing out before the cURL GET was timing out rendering XML-RPC unusable.
// Prevents WordPress from testing ssl capability on domain.com/xmlrpc.php?rsd remove_filter('atom_service_url','atom_service_url_filter');
-
Mercipour la suggestion de code.Une question,si vous utilisez XML-RPCmaisn'utilisezpas les capacités SSL,est-ce que l'inclusion de ce code accélérerait les choses?Sinon,dans quelles situations l'inclusion de ce code serait-elle avantageuse?Thanks for the code suggestion. One question, if you are using XML-RPC but not using the SSL capabilities would the including of this code speed things up at all? If not, in what situations would the inclusion of this code serve a benefit?
- 0
- 2010-09-14
- NetConstructor.com
-
Cela a uneffet minuscule sur lesperformances des appels XML-RPC,carilsn'ontplus à vérifier la capacité SSL via une requête HTTP.It has a minuscule effect on performance for XML-RPC calls, since they no longer have to check for SSL capability via an HTTP request.
- 0
- 2010-09-19
- gabrielk
-
- 2010-11-15
Récupéreztous les champspersonnalisés dans lemonde
function get_custom_field($key, $echo = FALSE) { global $post; $custom_field = get_post_meta( $post->ID, $key, true ); if ( $echo == false ) return $custom_field; echo $custom_field; }
Ensuite,appelez le champ avec une seule ligne
<?php get_custom_field('custom-field-name', TRUE); ?>
Grab all custom fields globally
function get_custom_field($key, $echo = FALSE) { global $post; $custom_field = get_post_meta( $post->ID, $key, true ); if ( $echo == false ) return $custom_field; echo $custom_field; }
Then call the field with a single line
<?php get_custom_field('custom-field-name', TRUE); ?>
-
Pourquoi quelqu'un utiliserait-il cela?Quelest l'avantage?Why would someone use this? What's the benefit?
- 0
- 2010-12-05
- matt
-
pour les sites/thèmes qui utilisentbeaucoup de champspersonnalisés (quej'utilise souventpour letravail du client),celapermet de réduire le code dans lethème,et également d'ajouter des conditions sur l'affichage ounon du champ.for sites / themes that use a lot of custom fields (which I use often for client work) it allows for less code in the theme, and also for adding conditionals on whether or not to display the field at all.
- 2
- 2010-12-10
- Norcross
-
- 2010-11-17
Renvoie lenombre de commentaires
C'est comme
count_user_posts()
,mais renvoie lenombre de commentaires à laplace:function count_user_comments($id) { global $wpdb; $users = $wpdb->get_var(" SELECT COUNT( * ) AS total FROM $wpdb->comments WHERE comment_approved = 1 AND user_id = $id"); return $users; }
Plus: comptez lespublications de l'utilisateur (y compris lestypes depublicationpersonnalisés) ou les commentaires:
function atom_count($user_id, $what_to_count = 'post') { global $wpdb; $where = $what_to_count == 'comment' ? "WHERE comment_approved = 1 AND user_id = {$user_id}" : get_posts_by_author_sql($what_to_count, TRUE, $user_id); $from = "FROM ".(($what_to_count == 'comment') ? $wpdb->comments : $wpdb->posts); $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) {$from} {$where}")); return $count; }
Exemples d'utilisation:
<?php echo atom_count(1, 'movie'); // displays 'movie' post type count ?>
<?php echo atom_count(1, 'comment'); // displays comment count ?>
Return the number of comments
This is like
count_user_posts()
, but returns the number of comments instead:function count_user_comments($id) { global $wpdb; $users = $wpdb->get_var(" SELECT COUNT( * ) AS total FROM $wpdb->comments WHERE comment_approved = 1 AND user_id = $id"); return $users; }
More: Count User's posts (including custom post types) or comments:
function atom_count($user_id, $what_to_count = 'post') { global $wpdb; $where = $what_to_count == 'comment' ? "WHERE comment_approved = 1 AND user_id = {$user_id}" : get_posts_by_author_sql($what_to_count, TRUE, $user_id); $from = "FROM ".(($what_to_count == 'comment') ? $wpdb->comments : $wpdb->posts); $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) {$from} {$where}")); return $count; }
Usage examples:
<?php echo atom_count(1, 'movie'); // displays 'movie' post type count ?>
<?php echo atom_count(1, 'comment'); // displays comment count ?>
-
- 2010-12-28
Activer oEmbed dans les widgetstexte/HTML
add_filter ('widget_text',tableau ($ wp_embed,'run_shortcode'),8); add_filter ('widget_text',tableau ($ wp_embed,'autoembed'),8);
J'utilise cecipour les widgets vidéo youtubeet lestrucs Flickr.
Enable oEmbed in Text/HTML Widgets
add_filter( 'widget_text', array( $wp_embed, 'run_shortcode' ), 8 ); add_filter( 'widget_text', array( $wp_embed, 'autoembed'), 8 );
I use this for youtube video widgets and flickr stuff.
-
- 2010-09-15
Nombre demots depublication
Testé sur: Wordpress 3.0.1
(À l'origineextrait du plug-in Post Word Count par Nick Momrick )
Ajoute un décompte dunombretotal demotspubliés aubas de "En cemoment"boîte sur letableau debord d'administration. Utile si vous utilisez votreblog comme débouchépour quelque chose comme NaNoWriMo ou si vous voulez simplementgarder unetrace de laprolificité de vos compétencesen blogging.
function post_word_count() { $count = 0; $posts = get_posts( array( 'numberposts' => -1, 'post_type' => array( 'post', 'page' ) )); foreach( $posts as $post ) { $count += str_word_count( strip_tags( get_post_field( 'post_content', $post->ID ))); } $num = number_format_i18n( $count ); // This block will add your word count to the stats portion of the Right Now box $text = _n( 'Word', 'Words', $num ); echo "<tr><td class='first b'>{$num}</td><td class='t'>{$text}</td></tr>"; // This line will add your word count to the bottom of the Right Now box. echo '<p>This blog contains a total of <strong>' . $num . '</strong> published words!</p>'; } // add to Content Stats table add_action( 'right_now_content_table_end', 'post_word_count'); // add to bottom of Activity Box add_action('activity_box_end', 'post_word_count');
Félicitations à Rarst pour lenettoyage du code sans requête!
Post Word Count
Tested on: Wordpress 3.0.1
(Originally extracted from the Post Word Count plug-in by Nick Momrick)
Adds a count of total published words to the bottom of the "Right Now" box on the admin dashboard. Useful if you're using your blog as an outlet for something like NaNoWriMo or if you just want to keep track of how prolific your blogging skills have become.
function post_word_count() { $count = 0; $posts = get_posts( array( 'numberposts' => -1, 'post_type' => array( 'post', 'page' ) )); foreach( $posts as $post ) { $count += str_word_count( strip_tags( get_post_field( 'post_content', $post->ID ))); } $num = number_format_i18n( $count ); // This block will add your word count to the stats portion of the Right Now box $text = _n( 'Word', 'Words', $num ); echo "<tr><td class='first b'>{$num}</td><td class='t'>{$text}</td></tr>"; // This line will add your word count to the bottom of the Right Now box. echo '<p>This blog contains a total of <strong>' . $num . '</strong> published words!</p>'; } // add to Content Stats table add_action( 'right_now_content_table_end', 'post_word_count'); // add to bottom of Activity Box add_action('activity_box_end', 'post_word_count');
Kudos to Rarst for the query-free cleanup of the code!
-
Mercipour l'aide,* Rarst *.Jen'aimegénéralementpasinclure les requêtes directes debase de données dans le code duplug-in `function.php`,mais commeje l'ai dit,il a étéinitialementextrait duplug-in de quelqu'un d'autre.Thanks for the assist, *Rarst*. I typically don't like to include direct database queries in plug-in `function.php` code, but like I said it was originally taken from someone else's plug-in.
- 0
- 2010-09-15
- EAMann
-
np,j'aiessayé celail y a longtempset c'était ungâchis.:) Maintenant,avec des compétences améliorées,il étaittemps debien faire les choses.Pourquoi avoir laissé l'anciennepartie de sortie?Jepense qu'ilest logique de l'afficher avec le reste des statistiques.btw cette version donne untotal différent (par rapport à «exploser»),c'estprobablement à cause desfiltresen cours de routeet autres lors de la récupération via l'API.np, I tried this long time ago and it was a mess. :) Now with upgraded skills it was time to do it right. Why left old output part? I think it makes sense to display it with rest of stats. btw this version gives different total (comparing to `explode`), this is probably because of filters along the way and such when fetching via API.
- 0
- 2010-09-15
- Rarst
-
La différence dans lenombre demessagesest le résultat desfiltres ...mais utiliser `get_posts ()` seraprobablement unnombre demotsplusprécis detoutefaçon.J'ai quitté l'ancienne ligne de sortie simplementparce que c'est comme ça queje l'utilise ...plus une différence d'opinion qu'autre chose ... Je rajouterai votreexemplepour l'ajouter aux statistiques afin que lesgenspuissent choisir.The difference in post count is a result of filters ... but using `get_posts()` will likely be a more accurate word count anyway. I left the old output line simply because that's how I've been using it ... more a difference of opinion than anything else ... I'll re-add your example to add it to the stats so people can pick.
- 0
- 2010-09-15
- EAMann
-
- 2010-09-17
Afficher le contenu spécifique uniquementpour les utilisateurs connectés
Testé sur: Wordpress 3.0.1
function content_only4logged_in($content) { // ALL LOGGED IN USERS if ( is_user_logged_in() && !is_null($content) && !is_feed() ) { return $content; } else { $content = wp_html_excerpt( $content, 80 ); $content .= ' …'; $content .= __( 'Sorry, more of this content is only available for logged users.', FB_TEXTDOMAIN ); return $content; } } add_action( 'the_content', 'content_only4logged_in' );
plus depossibilitéset d'informations sur lepost http://wpengineer.com/2046/control-the-wordpress-content-via-userrights-or-time/
Display Specific Content only for logged in users
Tested on: Wordpress 3.0.1
function content_only4logged_in($content) { // ALL LOGGED IN USERS if ( is_user_logged_in() && !is_null($content) && !is_feed() ) { return $content; } else { $content = wp_html_excerpt( $content, 80 ); $content .= ' …'; $content .= __( 'Sorry, more of this content is only available for logged users.', FB_TEXTDOMAIN ); return $content; } } add_action( 'the_content', 'content_only4logged_in' );
more possibilities and informations on the post http://wpengineer.com/2046/control-the-wordpress-content-via-userrights-or-time/
-
Jene peuxpas obtenir celapour afficher le contenumodifiépour les utilisateursnon connectés ... lapremièrepartiefonctionnebien,mais si l'utilisateurn'estpas connectéet lapageestmarquée commeprivée,je viens de recevoir le 404normal?I can't get this to display altered content for non-logged in users... the first part works fine, but it the user is not logged in and the page is marked private, I just get served the regular 404?
- 0
- 2011-02-09
- gillespieza
-
- 2010-09-30
Chargement conditionnel des scripts
Voici unmoyen de charger des scripts uniquement si un shortcode ou un widgetparticulierestprésent. source: Chargement des scripts uniquement si un shortcode ou un widgetparticulierestprésent
function has_my_shortcode($posts) { if ( empty($posts) ) return $posts; $found = false; foreach ($posts as $post) { if ( stripos($post->post_content, '[my_shortcode') ) $found = true; break; } if ($found){ $urljs = get_bloginfo( 'template_directory' ).IMP_JS; wp_register_script('my_script', $urljs.'myscript.js' ); wp_print_scripts('my_script'); } return $posts; } add_action('the_posts', 'has_my_shortcode');
Et voici comment charger des scripts uniquement si un certain widgetestprésent
Pour charger le script dans lapage où le widgetest chargé uniquement,vous devrez ajouter le codeis_active_widget (),dans votre classe de widget. Parexemple,voir le widget de commentaires récentspar défaut (wp-includes/default-widgets.php,ligne 602):
La classeclass WP_Widget_Recent_Comments extends WP_Widget { function WP_Widget_Recent_Comments() { $widget_ops = array('classname' => 'widget_recent_comments', 'description' => __( 'The most recent comments' ) ); $this->WP_Widget('recent-comments', __('Recent Comments'), $widget_ops); $this->alt_option_name = 'widget_recent_comments'; if ( is_active_widget(false, false, $this->id_base) ) add_action( 'wp_head', array(&$this, 'recent_comments_style') ); add_action( 'comment_post', array(&$this, 'flush_widget_cache') ); add_action( 'transition_comment_status', array(&$this, 'flush_widget_cache') ); }
Loading scripts conditionally
Here is a way to load scripts only if a particular shortcode or widget is present. source: Loading scripts only if a particular shortcode or widget is present
function has_my_shortcode($posts) { if ( empty($posts) ) return $posts; $found = false; foreach ($posts as $post) { if ( stripos($post->post_content, '[my_shortcode') ) $found = true; break; } if ($found){ $urljs = get_bloginfo( 'template_directory' ).IMP_JS; wp_register_script('my_script', $urljs.'myscript.js' ); wp_print_scripts('my_script'); } return $posts; } add_action('the_posts', 'has_my_shortcode');
And here is how to load scripts only if a certain widget is present
To load the script in the page where the widget is loaded only, you will have to add the is_active_widget() code, in you widget class. E.g., see the default recent comments widget (wp-includes/default-widgets.php, line 602):
class WP_Widget_Recent_Comments extends WP_Widget { function WP_Widget_Recent_Comments() { $widget_ops = array('classname' => 'widget_recent_comments', 'description' => __( 'The most recent comments' ) ); $this->WP_Widget('recent-comments', __('Recent Comments'), $widget_ops); $this->alt_option_name = 'widget_recent_comments'; if ( is_active_widget(false, false, $this->id_base) ) add_action( 'wp_head', array(&$this, 'recent_comments_style') ); add_action( 'comment_post', array(&$this, 'flush_widget_cache') ); add_action( 'transition_comment_status', array(&$this, 'flush_widget_cache') ); }
-
- 2010-11-10
CSS dutableau debordpersonnalisé
/* Change WordPress dashboard CSS */ function custom_admin_styles() { echo '<style type="text/css">#wphead{background:#069}</style>'; } add_action('admin_head', 'custom_admin_styles');
Vouspouvez ajouter desmodifications au CSSentre lesbalises.
Custom Dashboard CSS
/* Change WordPress dashboard CSS */ function custom_admin_styles() { echo '<style type="text/css">#wphead{background:#069}</style>'; } add_action('admin_head', 'custom_admin_styles');
You can add any changes to the css between the tags.
-
- 2010-12-03
Supprimer lepréfixeprivéet protégé
Cettefonction supprime le & quot; Privé: & quot;préfixe des articleset despagesmarqués commeprivés.Utilepour le contenu visible uniquementpar les utilisateurs ougroupes connectés.
function the_title_trim($title) { $title = attribute_escape($title); $findthese = array( '#Protected:#', '#Private:#' ); $replacewith = array( '', // What to replace "Protected:" with '' // What to replace "Private:" with ); $title = preg_replace($findthese, $replacewith, $title); return $title; } add_filter('the_title', 'the_title_trim');
MODIFIER: Mise àjourpourinclure également la suppression de Protected:
Remove Private and Protected Prefix
This function removes the "Privite:" prefix from posts and pages marked private. Useful for content only visible to logged in users or groups.
function the_title_trim($title) { $title = attribute_escape($title); $findthese = array( '#Protected:#', '#Private:#' ); $replacewith = array( '', // What to replace "Protected:" with '' // What to replace "Private:" with ); $title = preg_replace($findthese, $replacewith, $title); return $title; } add_filter('the_title', 'the_title_trim');
EDIT: Updated to include the removal of Protected: as well.
-
- 2011-01-02
Longueur d'extraitpersonnalisé
function excerpt($num) { $limit = $num+1; $excerpt = explode(' ', get_the_excerpt(), $limit); array_pop($excerpt); $excerpt = implode(" ",$excerpt)."... (<a href='" .get_permalink($post->ID) ." '>Read more</a>)"; echo $excerpt; }
Limitez la longueur de l'extrait affichéen écrivant dans lethème:extrait ('20 ');
Exemple:
<?php excerpt('22'); ?>
Cela limitera l'extrait à 22 caractères.L'extrait serainterrompupar
... (Read More)
Custom excerpt length
function excerpt($num) { $limit = $num+1; $excerpt = explode(' ', get_the_excerpt(), $limit); array_pop($excerpt); $excerpt = implode(" ",$excerpt)."... (<a href='" .get_permalink($post->ID) ." '>Read more</a>)"; echo $excerpt; }
Limit the length of the displayed excerpt by writing in the theme: excerpt('20');
Example:
<?php excerpt('22'); ?>
This will limit the excerpt to 22 characters.The excerpt will be interupted with
... (Read More)
-
- 2011-02-21
Ajouter un slug depageparent àbody_class
/*************************************************************** * Function body_class_section * Add the top level page to the body class for coloured sections ***************************************************************/ add_filter('body_class','body_class_section'); function body_class_section($classes) { global $wpdb, $post; if (is_page()) { if ($post->post_parent) { $parent = end(get_post_ancestors($current_page_id)); } else { $parent = $post->ID; } $post_data = get_post($parent, ARRAY_A); $classes[] = 'section-' . $post_data['post_name']; } return $classes; }
Cefiltre ajoute une classe de corps uniquebasée sur leparent deplus hautniveau de lapage actuelle. J'utilise cecipour les sites qui ont des couleurs ou desmisesen page spécifiquespour chaque section du site. Celafonctionnemieux avec les sitesbasés sur despages. Exemples CSS:
.section-about { background: red; } .section-portfolio { background: blue; }
Votrethème doit également utiliser la fonctionbody_class .
Correction des objetsflash oEmbed
/*************************************************************** * Function my_oembed_wmode * Fix oEmbed window mode for flash objects ***************************************************************/ add_filter('embed_oembed_html', 'my_oembed_wmode', 1); function my_oembed_wmode( $embed ) { if ( strpos( $embed, '<param' ) !== false ) { $embed = str_replace( '<embed', '<embed wmode="transparent" ', $embed ); $embed = preg_replace( '/param>/', 'param><param name="wmode" value="transparent" />', $embed, 1); } return $embed; }
J'aieu desproblèmes dans lepassé où les objets oEmbed Flashentraienten collision avec lesmenus denavigation déroulants. Cefiltre résout ceproblèmeen ajoutant unmode defenêtretransparente auxincorporations.
Supprimer la colonne "commentaires" de la liste despages d'administration
/*************************************************************** * Function custom_pages_columns * Remove "comments" from pages overview (rarely use comments on pages) ***************************************************************/ add_filter('manage_pages_columns', 'custom_pages_columns'); function custom_pages_columns($defaults) { unset($defaults['comments']); return $defaults; }
Jen'utilisepresquejamais les commentaires sur lespageset cela aide àgarder les chosesen ordre dans letableau debord WordPress.
Add parent page slug to body_class
/*************************************************************** * Function body_class_section * Add the top level page to the body class for coloured sections ***************************************************************/ add_filter('body_class','body_class_section'); function body_class_section($classes) { global $wpdb, $post; if (is_page()) { if ($post->post_parent) { $parent = end(get_post_ancestors($current_page_id)); } else { $parent = $post->ID; } $post_data = get_post($parent, ARRAY_A); $classes[] = 'section-' . $post_data['post_name']; } return $classes; }
This filter adds a unique body class based on the highest level parent of the current page. I use this for sites that have specific colours or layouts for each section of the site. It works best with sites based around pages. CSS examples:
.section-about { background: red; } .section-portfolio { background: blue; }
Your theme must also make use of the body_class function.
Fix oEmbed flash objects
/*************************************************************** * Function my_oembed_wmode * Fix oEmbed window mode for flash objects ***************************************************************/ add_filter('embed_oembed_html', 'my_oembed_wmode', 1); function my_oembed_wmode( $embed ) { if ( strpos( $embed, '<param' ) !== false ) { $embed = str_replace( '<embed', '<embed wmode="transparent" ', $embed ); $embed = preg_replace( '/param>/', 'param><param name="wmode" value="transparent" />', $embed, 1); } return $embed; }
I have had problems in the past where oEmbed Flash objects collide with drop down navigation menus. This filter fixes that problem by adding a transparent window mode to the embeds.
Remove the "comments" column from Admin page list
/*************************************************************** * Function custom_pages_columns * Remove "comments" from pages overview (rarely use comments on pages) ***************************************************************/ add_filter('manage_pages_columns', 'custom_pages_columns'); function custom_pages_columns($defaults) { unset($defaults['comments']); return $defaults; }
I hardly ever make use of commenting on pages and this helps keep things tidy in the WordPress dashboard.
-
- 2010-09-10
Activer lapaginationnumérique
Testé sur: Wordpress 3.0.1
/* Numeric Pagination ********************************************/ function numeric_pagination ($pageCount = 9, $query = null) { if ($query == null) { global $wp_query; $query = $wp_query; } if ($query->max_num_pages <= 1) { return; } $pageStart = 1; $paged = $query->query_vars['paged']; // set current page if on the first page if ($paged == null) { $paged = 1; } // work out if page start is halfway through the current visible pages and if so move it accordingly if ($paged > floor($pageCount / 2)) { $pageStart = $paged - floor($pageCount / 2); } if ($pageStart < 1) { $pageStart = 1; } // make sure page start is if ($pageStart + $pageCount > $query->max_num_pages) { $pageCount = $query->max_num_pages - $pageStart; } ?> <div id="archive_pagination"> <?php if ($paged != 1) { ?> <a href="<?php echo get_pagenum_link(1); ?>" class="numbered page-number-first"><span>‹ <?php _e('<< First', 'global'); ?></span></a> <?php } // first page is not visible... if ($pageStart > 1) { //echo 'previous'; } for ($p = $pageStart; $p <= $pageStart + $pageCount; $p ++) { if ($p == $paged) { ?> <span class="numbered page-number-<?php echo $p; ?> current-numeric-page"><?php echo $p; ?></span> <?php } else { ?> <a href="<?php echo get_pagenum_link($p); ?>" class="numbered page-number-<?php echo $p; ?>"><span><?php echo $p; ?></span></a> <?php } } // last page is not visible if ($pageStart + $pageCount < $query->max_num_pages) { //echo "last"; } if ($paged != $query->max_num_pages) { ?> <a href="<?php echo get_pagenum_link($query->max_num_pages); ?>" class="numbered page-number-last"><span><?php _e('>> Last', 'global'); ?> ›</span></a> <?php } ?> </div>
Enable Numeric Pagination
Tested on: Wordpress 3.0.1
/* Numeric Pagination ********************************************/ function numeric_pagination ($pageCount = 9, $query = null) { if ($query == null) { global $wp_query; $query = $wp_query; } if ($query->max_num_pages <= 1) { return; } $pageStart = 1; $paged = $query->query_vars['paged']; // set current page if on the first page if ($paged == null) { $paged = 1; } // work out if page start is halfway through the current visible pages and if so move it accordingly if ($paged > floor($pageCount / 2)) { $pageStart = $paged - floor($pageCount / 2); } if ($pageStart < 1) { $pageStart = 1; } // make sure page start is if ($pageStart + $pageCount > $query->max_num_pages) { $pageCount = $query->max_num_pages - $pageStart; } ?> <div id="archive_pagination"> <?php if ($paged != 1) { ?> <a href="<?php echo get_pagenum_link(1); ?>" class="numbered page-number-first"><span>‹ <?php _e('<< First', 'global'); ?></span></a> <?php } // first page is not visible... if ($pageStart > 1) { //echo 'previous'; } for ($p = $pageStart; $p <= $pageStart + $pageCount; $p ++) { if ($p == $paged) { ?> <span class="numbered page-number-<?php echo $p; ?> current-numeric-page"><?php echo $p; ?></span> <?php } else { ?> <a href="<?php echo get_pagenum_link($p); ?>" class="numbered page-number-<?php echo $p; ?>"><span><?php echo $p; ?></span></a> <?php } } // last page is not visible if ($pageStart + $pageCount < $query->max_num_pages) { //echo "last"; } if ($paged != $query->max_num_pages) { ?> <a href="<?php echo get_pagenum_link($query->max_num_pages); ?>" class="numbered page-number-last"><span><?php _e('>> Last', 'global'); ?> ›</span></a> <?php } ?> </div>
-
Ilexiste déjà unefonction dans WordPresspourfaire lapaginationnumérique,voir http://codex.wordpress.org/Function_Reference/paginate_linksThere's a function in WordPress for doing numeric pagination already, see http://codex.wordpress.org/Function_Reference/paginate_links
- 11
- 2010-11-11
- t31os
-
- 2010-09-28
Raccourcissez vos liens courtsen supprimant le site Web
Testé sur: Wordpress 3.0.1
Réduisez vos liens courts si vousincluez
www.
dans votre domaine.Via scratch99.com :add_filter('get_shortlink','sjc_alter_shortlink'); function sjc_alter_shortlink($shortlink) { $shortlink = preg_replace('/^(https?:\/\/)?(www\.)/','$1',$shortlink); return $shortlink; }
Make your Shortlinks Shorter by Removing WWW
Tested on: Wordpress 3.0.1
Make your shortlinks shorter if you include
www.
in your domain. Via scratch99.com:add_filter('get_shortlink','sjc_alter_shortlink'); function sjc_alter_shortlink($shortlink) { $shortlink = preg_replace('/^(https?:\/\/)?(www\.)/','$1',$shortlink); return $shortlink; }
-
Une vérification doit être ajoutéepour s'assurer que la chaîne "www."n'est supprimé que s'il setrouve autout début de lapartie domaine de l'URL d'origine.Le remplacernaïvementn'importe où dans l'URLentraînera desbogues s'il avait été utilisé sur un domaine comme owww.com (qui sembleen faitexécuter WordPress) :)A check should be added to make sure the string "www." is only removed if it is found at the very beginning of the domain part of the original URL. Naively replacing it anywhere in the URL will lead to bugs if it had been used on a domain like owww.com (which actually appears to be running WordPress) :)
- 3
- 2012-05-28
- Ingve
-
@Ingveje l'ai corrigé,maintenantilne supprimera que le wwwinitial@Ingve I fixed it, now it will remove only the initial www
- 0
- 2014-01-11
- fregante
-
- 2010-11-04
Vérifiez si unmessage contient du contenuintégré.
function has_embed( $post_id = false ) { if( !$post_id ) $post_id = get_the_ID(); else $post_id = absint( $post_id ); if( !$post_id ) return false; $post_meta = get_post_custom_keys( $post_id ); $post_meta = array_map( 'trim' , $post_meta ); foreach( $post_meta as $meta ) { if( '_oembed' != substr( $meta , 0 , 7 ) ) continue; return true; } return false; }
Vous utiliseriez lafonction de lamêmemanière que vous vérifiez si unmessage a unebalise.
if( has_embed() ) { // do whatever }
Lafonction renvoietrue si uneintégrationesttrouvée,falseen cas d'échec.
Check if a post has embedded content.
Check if a post has embedded content, works inside the loop using the current post's ID, or alternatively can be passed an ID to determine the post to check for embedded content.
function has_embed( $post_id = false ) { if( !$post_id ) $post_id = get_the_ID(); else $post_id = absint( $post_id ); if( !$post_id ) return false; $post_meta = get_post_custom_keys( $post_id ); $post_meta = array_map( 'trim' , $post_meta ); foreach( $post_meta as $meta ) { if( '_oembed' != substr( $meta , 0 , 7 ) ) continue; return true; } return false; }
You'd use the function in the same way you check if a post has a tag..
if( has_embed() ) { // do whatever }
Function returns true if an embed is found, false on fail.
-
Intéressant,maisje me demande,pourquoi l'utiliseriez-vous?Quelgenre d'applications a-t-il?Interesting, but I'm wondering, why would you use it? What kind of applications does it have?
- 0
- 2010-12-05
- matt
-
Vérifier si un article a uneintégration sur unepage qui affiche desextraits serait une utilisation (et c'est le cas d'utilisation d'originepour lequelje l'ai écrit).D'autres cas d'utilisationpossibles seraient avec des utilisateurs qui écrivent leurspropresmodèles dethèmeet veulentfournir desfonctionnalitésen fonction dufait qu'un article (ou untype) a du contenuintégré,sans avoirbesoin d'unfiltre sur `the_content` ou denombreux appels`get_post_custom_keys`.Checking if a post has an embed on a page that displays excerpts would be one use(and it's the original use case i wrote it for). Other possible use cases would be with users who write their own theme templates and want to provide functionality dependant on whether a post(or type) has embedded content, without the need for a filter on `the_content` or numerous `get_post_custom_keys` calls.
- 0
- 2010-12-05
- t31os
-
- 2010-11-14
Afficher lesmessages de différentstypes demessagespersonnalisés sur lapage d'accueil
En déposant le code suivant aubas de cet article dans votrefichierfunctions.php,vouspouvezfaireen sorte que wordpress affiche automatiquement les articles de différentstypes d'articlespersonnalisés que vous avez créés. Actuellement,par défaut,wordpressn'affiche que les articles appartenant aux "articles"par défaut.type demessage.
Dans l'exemple ci-dessous,vous devrez changer la section qui appelle:
$query->set( 'post_type', array('post', 'page', 'services', 'attachment'));
Avec vosproprestypes depublicationspersonnalisés que vous souhaitezinclure dans les résultats de la liste depublications de lapage d'accueil. Dans ce cas,nous demandons à wordpress denous renvoyertous les articles appartenant au "message"par défaut.et & quot;page & quot;post_typepuis demander à wordpress d'inclure également letype depublicationpersonnalisé quenous avons créépour les & quot; services & quot;et enfin letype depublication wordpresspar défaut de "piècejointe" ce qui signifie simplement que chaquefois que quelque choseest ajouté à labibliothèquemultimédia,il sera automatiquement affiché sur lapage d'accueilen tant qu'entrée séparée.
// CUSTOM HOMEPAGE POST LIST INCLUDING DIFFERENT POST_TYPES // make sure to edit the post types you wanted included in the list below add_filter( 'pre_get_posts', 'my_homepage_post_list' ); function my_homepage_post_list ( $query ) { if ( is_home() && false == $query->query_vars['suppress_filters'] ) $query->set( 'post_type', array('post', 'page', 'services', 'attachment')); return $query; }
Vouspouvez également utiliser cette requêtepersonnalisée à différentsendroits,parexemple dans unfluxpersonnalisé via quelque chose comme celui-ci
if (( is_home() && false == $query->query_vars['suppress_filters'] ) || is_feed())
Display Posts from Different Custom Post Types on homepage
By dropping the following code on the bottom of this post into your functions.php file you can get wordpress to automatically display posts from different custom post types you have created. Currently by default wordpress only display posts which belong to the default "posts" post type.
In the example provided below you will need to change the section which calls:
$query->set( 'post_type', array('post', 'page', 'services', 'attachment'));
With your own custom post types which you would like to include in the homepage post list results. In this case we are asking wordpress to return to us all posts belonging to the default "post" and "page" post_type then asking wordpress to also include the custom post type we created for "services" and finally the default wordpress post type of "attachment" which just means that anytime something is added to the media library it will automatically get displayed on the homepage as a separate entry.
// CUSTOM HOMEPAGE POST LIST INCLUDING DIFFERENT POST_TYPES // make sure to edit the post types you wanted included in the list below add_filter( 'pre_get_posts', 'my_homepage_post_list' ); function my_homepage_post_list ( $query ) { if ( is_home() && false == $query->query_vars['suppress_filters'] ) $query->set( 'post_type', array('post', 'page', 'services', 'attachment')); return $query; }
You can also utilize this custom query in different locations, such as in a custom feed through something like this
if (( is_home() && false == $query->query_vars['suppress_filters'] ) || is_feed())
-
- 2010-12-22
Supprimez leprofil utilisateur desinformations de contact des champspar défautet remplacez-lespar quelque chose deplus utilisable
La deuxièmepartie de cettefonction a déjà étémentionnée ci-dessus,maisen supprimant les champspar défaut - AIM,Yahoo IMet Jabber/Google Talk -pasencore:
function update_contact_methods( $contactmethods ) { // Remove annoying and unwanted default fields unset($contactmethods['aim']); unset($contactmethods['jabber']); unset($contactmethods['yim']); // Add new fields $contactmethods['phone'] = 'Phone'; $contactmethods['mobile'] = 'Mobile'; $contactmethods['address'] = 'Address'; return $contactmethods; } add_filter('user_contactmethods', 'update_contact_methods');
Bien sûr,vouspouvez ajouter autant de champs que vous le souhaitez (voir lesexemplesprécédentsplus haut dans cefil) sous "Ajouter denouveaux champs"
Remove default fields contact info user profile and replace them with something more usable
The second part of this function has already been mentioned above, but removing the default fields - AIM, Yahoo IM and Jabber/Google Talk - not yet:
function update_contact_methods( $contactmethods ) { // Remove annoying and unwanted default fields unset($contactmethods['aim']); unset($contactmethods['jabber']); unset($contactmethods['yim']); // Add new fields $contactmethods['phone'] = 'Phone'; $contactmethods['mobile'] = 'Mobile'; $contactmethods['address'] = 'Address'; return $contactmethods; } add_filter('user_contactmethods', 'update_contact_methods');
Of course you can add as many fields as you want (see previous examples earlier in this thread) under "Add new fields"
-
- 2011-11-10
Pré-remplir lestypes demessages
En voici unpour cette collection.
//////////////////////////////////////////////////////////////////////////////////// // This auto populates post types and posts. /////////////////////////////////////////////////////////////////////////////////// add_filter( 'default_content', 'my_editor_content' ); function my_editor_content( $content ) { global $post_type; switch( $post_type ) { case 'your_post_type_here': //auto populate $content = 'The content you want to pre-populate the post type with.'; break; } return $content; }
Celapeut être utile lorsque vous devezpublier lesmêmesinformationsencoreet encore avec de légères différences.
Pre-populating post types
Here is one for this collection.
//////////////////////////////////////////////////////////////////////////////////// // This auto populates post types and posts. /////////////////////////////////////////////////////////////////////////////////// add_filter( 'default_content', 'my_editor_content' ); function my_editor_content( $content ) { global $post_type; switch( $post_type ) { case 'your_post_type_here': //auto populate $content = 'The content you want to pre-populate the post type with.'; break; } return $content; }
This can come in handy for when you need to post the same info over and over again with slight differences.
-
Joli!J'aime cette option simple.Pouvez-vous développer celaen montrant desmoyens de remplir automatiquement des champspersonnalisés ou d'autres critères/options oupeut-êtremême lesmoyens d'insérer automatiquement desmédias?Nice one! I like this simple option. Can you expand this by possible showing ways of automatically populating custom fields or other criteria/options or possibly even the means of auto-inserting media?
- 0
- 2011-11-11
- NetConstructor.com
-
Jepeux certainement voir l'élargir.Jen'aipasencore vraimentessayé d'allerplus loin.I can definitely see about expanding it. I have not really tried taking it further yet.
- 0
- 2011-11-14
- Nicole
-
J'adorerais voir desmoyens d'élargir celaWould love to see ways to expand this
- 0
- 2012-04-11
- JasonDavis
-
- 2010-09-15
Inclure automatiquement le code Google Analytics
Testé sur: Wordpress 3.1 RC3
J'utilise ce script surtousmes sites depuis WordPress 2.3.0 ...il ajoute simplement les scripts de suivi Google standard aupied depage.
// Add Google Analytics Tracking Code function add_google_analytics() { ?> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-XXXXXXX-X"); pageTracker._trackPageview(); } catch(err) {}</script> <?php } add_action('wp_footer', 'add_google_analytics');
Veillez simplement à remplacer
UA-XXXXXXX-X
par votrepropre code de suivi Google ...Auto Include Google Analytics Code
Tested on: Wordpress 3.1 RC3
I've been using this script on all of my sites since WordPress 2.3.0 ... it just adds the standard Google tracking scripts to the footer.
// Add Google Analytics Tracking Code function add_google_analytics() { ?> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-XXXXXXX-X"); pageTracker._trackPageview(); } catch(err) {}</script> <?php } add_action('wp_footer', 'add_google_analytics');
Just be sure to replace
UA-XXXXXXX-X
with your own Google tracking code...-
mercipour lepartage.J'utilise également celui-ci,maisje serais curieux de savoir si vous savez comment celapeut êtremodifié afin que desbalises spécifiques,despages detype depublication oumême despublicationselles-mêmespuissent recevoir automatiquement des valeurs supplémentairesen utilisant les capacités de suivi de campagne.googlefournit.Deplus,quefaudrait-il ajouter sinous voulions l'ajouter aupied depage detoutes lespages d'administrationpour suivre l'activité de l'administrateur?thanks for the share. I have been using this one as well but I would be curious to know if you are aware how this can be modified so that specific tags, post type pages or even posts themself can be passed additional values automatically making use of the campaign tracking var capabilities google provides. Additionally, what would need to be added if we wanted to add this to the footer of all admin pages to track admin activity?
- 0
- 2010-09-17
- NetConstructor.com
-
Jene suispas sûr d'ajouter des variables de suivi de campagne uniquementparce queje n'en aipasencoreeubesoin.Maispour ajouter lesmêmes scripts auxpages d'administration,il vous suffit d'utiliser `add_action ('admin_footer','add_google_analytics');`pour vous accrocher aupied depage despages d'administration.Not sure about adding campaign tracking variables only because I haven't had a need for that yet. But to add the same scripts to admin pages, you'd just use `add_action('admin_footer', 'add_google_analytics');` to hook on to the footer of admin pages.
- 1
- 2010-09-17
- EAMann
-
- 2010-09-17
Listertoutes les constantespourinformationet débogage
Testé sur: Wordpress 3.0.1
N'affichera lesinformations que si vous êtes un utilisateur connecté
if ( is_user_logged_in() ) { print('<pre>'); print_r( @get_defined_constants() ); print('</pre>'); }
function constants($filter = false) { $constants = get_defined_constants(); if( $filter ) { $temp = array(); foreach ( $constants as $key => $constant ) if( false !== stripos( $key, $filter ) || false !== stripos( $constant, $filter ) ) $temp[$key] = $constant; $constants = $temp; } ksort( $constants ); var_dump( $constants ); }
List all constants for information and debugging
Tested on: Wordpress 3.0.1
Will only display the information if you are a logged in user
if ( is_user_logged_in() ) { print('<pre>'); print_r( @get_defined_constants() ); print('</pre>'); }
Here is version with optional filter that will partially match constant names and values:
function constants($filter = false) { $constants = get_defined_constants(); if( $filter ) { $temp = array(); foreach ( $constants as $key => $constant ) if( false !== stripos( $key, $filter ) || false !== stripos( $constant, $filter ) ) $temp[$key] = $constant; $constants = $temp; } ksort( $constants ); var_dump( $constants ); }
-
- 2010-11-05
-
donc celamet àjour automatiquementtout/partie de vosplugins chaquefois que quelque chose denouveauest disponible?so this automatically updates any/all of your plugins whenever something new is available?
- 0
- 2010-11-05
- NetConstructor.com
-
Non,vousn'aveztout simplementpasbesoin d'une connexionftp pourmettre àjour votre core ou vosplugins localementNope, you just don't need a ftp login to update your core or plugins locally
- 0
- 2010-11-09
- Horttcore
-
- 2011-01-02
Ajouter lebouton "Page suivante" dans l'éditeur WYSIYG
add_filter('mce_buttons','wysiwyg_editor'); function wysiwyg_editor($mce_buttons) { $pos = array_search('wp_more',$mce_buttons,true); if ($pos !== false) { $tmp_buttons = array_slice($mce_buttons, 0, $pos+1); $tmp_buttons[] = 'wp_page'; $mce_buttons = array_merge($tmp_buttons, array_slice($mce_buttons, $pos+1)); } return $mce_buttons; }
Add "Next-page"-button in WYSIYG-editor
add_filter('mce_buttons','wysiwyg_editor'); function wysiwyg_editor($mce_buttons) { $pos = array_search('wp_more',$mce_buttons,true); if ($pos !== false) { $tmp_buttons = array_slice($mce_buttons, 0, $pos+1); $tmp_buttons[] = 'wp_page'; $mce_buttons = array_merge($tmp_buttons, array_slice($mce_buttons, $pos+1)); } return $mce_buttons; }
-
- 2011-01-04
Ajouter des stylespersonnalisés à l'éditeur TinyMCE
Parfois,les utilisateurset les clientsne saventpas comment leur contenuest affiché dans l'éditeurpar rapport à lafaçon dontilest affiché sur lefront-end.Copier seulement quelques lignespertinentes de votrefeuille de styleprincipale dans votrenouveautinymce.csspeutbeaucoup aider:
function custom_mce_css($wp) { return $wp .= ',' . get_bloginfo('stylesheet_directory') . '/css/tinymce.css'; } add_filter( 'mce_css', 'custom_mce_css' );
Add custom styles to TinyMCE editor
Sometimes users and clients get confused about how their content is displayed in the editor versus how it is displayed on the front-end. Copying just a few relevant lines from your main stylesheet into your new tinymce.css can help a lot:
function custom_mce_css($wp) { return $wp .= ',' . get_bloginfo('stylesheet_directory') . '/css/tinymce.css'; } add_filter( 'mce_css', 'custom_mce_css' );
-
Agréable.Je viens de découvrir qu'ilexiste une solution de Seamus Leahy qui étendtout cela unpeuplus loinen ajoutant une classe de corps àtinymce.http://www.digwp.com/2010/11/actual-wysiwygNice. Ive just discoverd there is a solution by Seamus Leahy that extends all this one step further by adding a body class to tinymce. http://www.digwp.com/2010/11/actual-wysiwyg
- 0
- 2011-01-20
- Michal Mau
-
N'est-cepas déjà couvertpar les styles debaseet d'éditeur?Isn't this already covered by core & editor styles?
- 0
- 2011-02-01
- kaiser
-
Jepréfère créer unefeuille de stylepour lefront-endet TinyMCEen une seulefois.Ensuite,j'utilise lafonctionnalité debase de lafonction add_editor_style ()pourinclure lafeuille de styleet m'assurer qu'elleest chargée lors du chargement de TinyMCE.Article du Codex sur http://codex.wordpress.org/Function_Reference/add_editor_styleI prefer to create a stylesheet for both front-end and TinyMCE in one go. Then I use core functionality of the add_editor_style() function to include the stylesheet and ensure it's loaded when TinyMCE loads. Codex article at http://codex.wordpress.org/Function_Reference/add_editor_style
- 0
- 2011-09-13
- Philip Downer
-
- 2011-06-08
Utilisez unefigureet une légendepour les légendes
Testé sur: WordPress 3.1.3
(Crédits à WP Engineer: http://wpengineer.com/917/filter-caption- shortcode-in-wordpress/)
function mytheme_caption( $attr, $content = null ) { $output = apply_filters( 'img_caption_shortcode', '', $attr, $content ); if ( $output != '' ) return $output; extract( shortcode_atts ( array( 'id' => '', 'align' => 'alignnone', 'width'=> '', 'caption' => '' ), $attr ) ); if ( 1 > (int) $width || empty( $caption ) ) return $content; if ( $id ) $id = 'id="' . $id . '" '; return '<figure ' . $id . 'class="wp-caption ' . $align . '" style="width: ' . $width . 'px">' . do_shortcode( $content ) . '<figcaption class="wp-caption-text">' . $caption . '</figcaption></figure>'; } add_shortcode( 'wp_caption', 'mytheme_caption' ); add_shortcode( 'caption', 'mytheme_caption' );
Use figure and figcaption for captions
Tested on: WordPress 3.1.3
(Credits to WP Engineer: http://wpengineer.com/917/filter-caption-shortcode-in-wordpress/)
function mytheme_caption( $attr, $content = null ) { $output = apply_filters( 'img_caption_shortcode', '', $attr, $content ); if ( $output != '' ) return $output; extract( shortcode_atts ( array( 'id' => '', 'align' => 'alignnone', 'width'=> '', 'caption' => '' ), $attr ) ); if ( 1 > (int) $width || empty( $caption ) ) return $content; if ( $id ) $id = 'id="' . $id . '" '; return '<figure ' . $id . 'class="wp-caption ' . $align . '" style="width: ' . $width . 'px">' . do_shortcode( $content ) . '<figcaption class="wp-caption-text">' . $caption . '</figcaption></figure>'; } add_shortcode( 'wp_caption', 'mytheme_caption' ); add_shortcode( 'caption', 'mytheme_caption' );
-
- 2012-01-08
<↓ Voici quelquesbons codes courts à utiliser:
1. Shortcode dubouton departage Twitteret Facebookfacile à ajouter
function shreplz() { return ' <div class="sharebox"> <div class="twittme"><a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></div> <div class="shareface"><a name="fb_share"></a> <script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script></div> <br style="clear: left;" /> </div> '; } add_shortcode('sharethis', 'shreplz'); // How to use: [sharethis]
2. Instantané de site distantfacile à l'aide du shortcode de l'API WordPress
function wpr_snap($atts, $content = null) { extract(shortcode_atts(array( "snap" => 'http://s.wordpress.com/mshots/v1/', "url" => 'http://www.sagive.co.il', "alt" => 'My image', "w" => '400', // width "h" => '300' // height ), $atts)); $img = '<img src="' . $snap . '' . urlencode($url) . '?w=' . $w . '&h=' . $h . '" alt="' . $alt . '"/>'; return $img; } add_shortcode("snap", "wpr_snap"); // How to use: [snap url="http://www.example.com" alt="Cool Site!" w="300px" h="200px"]
3. Facile à utiliser & amp;intégrer le shortcodeiFrame
function GenerateIframe( $atts ) { extract( shortcode_atts( array( 'href' => 'http://the-url', 'height' => '550px', 'width' => '600px', ), $atts ) ); return '<iframe src="'.$href.'" width="'.$width.'" height="'.$height.'"> <p>Your Browser does not support Iframes.</p></iframe>'; } add_shortcode('iframe', 'GenerateIframe'); // How to use: [iframe href="http://www.exmaple.com" height="480" width="640"]
4. Fichier/doc distantfacile àinclure avec shortcode
function getfile_content( $atts ) { extract( shortcode_atts( array( 'fileurl' => '' ), $atts ) ); if ($fileurl!='') return @file_get_contents($fileurl); } add_shortcode( 'getfile', 'getfile_content' ); // How to use: [getfile fileurl="http://www.exmaple.com/somepage.html"]
. Voici quelquesextraits de code liés aux commentaires:
1. Fermer lapossibilité de commenterglobalement
function closeCommentsGlobaly($data) { return false; } add_filter('comments_number', 'closeCommentsGlobaly'); add_filter('comments_open', 'closeCommentsGlobaly');
2. Donnez à l'administrateur une classe CSS différentepour les commentaires de l'administrateur
if (1 == $comment->user_id) echo 'siteadmin'; // Pick your class here
3. Un riche vraiment cool avec une liste de données de commentaires -gr8pour lapage verrouilléepersonnalisée
$comments = get_comments( array( 'number' => 10, // How many comments 'status' => 'approve' // Type of comments ) ); foreach($comments as $eachComment){ // Collect the data and assign it $commentID = comment_ID; $commentAuthorEmail = $eachComment->comment_author_email; $commentPostId = $eachComment->comment_post_ID; $commentPostTitle = get_the_title( $commentPostId ); $commentPostUrl = get_permalink( $commentPostId ); $comment_sidebarnumber = get_comments_number( $commentPostId ); global $wpdb; $userCommentCount = $wpdb->get_var('SELECT COUNT('.$commentID.') FROM ' . $wpdb->comments. ' WHERE comment_author_email = "' . $commentAuthorEmail . '"'); echo '<div style="border: 1px solid #ccc; padding: 10px;">'; echo '<ul style="margin: 0px;">'; echo '<li>Name: '. $eachComment->comment_author .'</li>'; echo '<li>Commented about: <a href="'.$commentPostUrl.'">'. $commentPostTitle .'</a></li>'; echo '<li>Commented On: '. $eachComment->comment_date .'</li>'; echo '<li>Commneter Site: '. $eachComment->comment_author_email .'</</li>'; echo '<li>Commenter Email: '. $eachComment->comment_author_email .'</</li>'; echo '<li>This Commenter'. $eachComment->comment_author .' Commented '. $userCommentCount .' on your site</</li>'; echo '</ul>'; echo '<p style="padding: 10px;"><strong>'. $eachComment->comment_author .' wrote</strong>: '. $eachComment->comment_content .'</p>'; echo '</div>'; }
Here are some nice shortcodes for you to use:
1. Easy-to-add Twitter and Facebook share button shortcode
function shreplz() { return ' <div class="sharebox"> <div class="twittme"><a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></div> <div class="shareface"><a name="fb_share"></a> <script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script></div> <br style="clear: left;" /> </div> '; } add_shortcode('sharethis', 'shreplz'); // How to use: [sharethis]
2. Easy remote site snapshot using WordPress API shortcode
function wpr_snap($atts, $content = null) { extract(shortcode_atts(array( "snap" => 'http://s.wordpress.com/mshots/v1/', "url" => 'http://www.sagive.co.il', "alt" => 'My image', "w" => '400', // width "h" => '300' // height ), $atts)); $img = '<img src="' . $snap . '' . urlencode($url) . '?w=' . $w . '&h=' . $h . '" alt="' . $alt . '"/>'; return $img; } add_shortcode("snap", "wpr_snap"); // How to use: [snap url="http://www.example.com" alt="Cool Site!" w="300px" h="200px"]
3. Easy to use & embed iFrame shortcode
function GenerateIframe( $atts ) { extract( shortcode_atts( array( 'href' => 'http://the-url', 'height' => '550px', 'width' => '600px', ), $atts ) ); return '<iframe src="'.$href.'" width="'.$width.'" height="'.$height.'"> <p>Your Browser does not support Iframes.</p></iframe>'; } add_shortcode('iframe', 'GenerateIframe'); // How to use: [iframe href="http://www.exmaple.com" height="480" width="640"]
4. Easy-to-include remote file / doc with shortcode
function getfile_content( $atts ) { extract( shortcode_atts( array( 'fileurl' => '' ), $atts ) ); if ($fileurl!='') return @file_get_contents($fileurl); } add_shortcode( 'getfile', 'getfile_content' ); // How to use: [getfile fileurl="http://www.exmaple.com/somepage.html"]
. Here are some comments related snippets:
1. Close the ability to comment globally
function closeCommentsGlobaly($data) { return false; } add_filter('comments_number', 'closeCommentsGlobaly'); add_filter('comments_open', 'closeCommentsGlobaly');
2. Give the administrator a different CSS class for the administrator's comments
if (1 == $comment->user_id) echo 'siteadmin'; // Pick your class here
3. A really cool rich with a data list of comments - gr8 for custom locked page
$comments = get_comments( array( 'number' => 10, // How many comments 'status' => 'approve' // Type of comments ) ); foreach($comments as $eachComment){ // Collect the data and assign it $commentID = comment_ID; $commentAuthorEmail = $eachComment->comment_author_email; $commentPostId = $eachComment->comment_post_ID; $commentPostTitle = get_the_title( $commentPostId ); $commentPostUrl = get_permalink( $commentPostId ); $comment_sidebarnumber = get_comments_number( $commentPostId ); global $wpdb; $userCommentCount = $wpdb->get_var('SELECT COUNT('.$commentID.') FROM ' . $wpdb->comments. ' WHERE comment_author_email = "' . $commentAuthorEmail . '"'); echo '<div style="border: 1px solid #ccc; padding: 10px;">'; echo '<ul style="margin: 0px;">'; echo '<li>Name: '. $eachComment->comment_author .'</li>'; echo '<li>Commented about: <a href="'.$commentPostUrl.'">'. $commentPostTitle .'</a></li>'; echo '<li>Commented On: '. $eachComment->comment_date .'</li>'; echo '<li>Commneter Site: '. $eachComment->comment_author_email .'</</li>'; echo '<li>Commenter Email: '. $eachComment->comment_author_email .'</</li>'; echo '<li>This Commenter'. $eachComment->comment_author .' Commented '. $userCommentCount .' on your site</</li>'; echo '</ul>'; echo '<p style="padding: 10px;"><strong>'. $eachComment->comment_author .' wrote</strong>: '. $eachComment->comment_content .'</p>'; echo '</div>'; }
-
- 2010-12-18
Créer unebalise conditionnellepour lestaxonomiespersonnalisées
Dans cetexemple,«étudiant» était untype depublicationpersonnaliséet «stud_cat» était lataxonomiepersonnalisée.Utilisez
has_student(null)
pour le conditionnelfunction has_student( $student, $_post = null ) { if ( !empty( $student ) ) return false; if ( $_post ) $_post = get_post( $_post ); else $_post =& $GLOBALS['post']; if ( !$_post ) return false; $r = is_object_in_term( $_post->ID, 'studcat', $student ); if ( is_wp_error( $r ) ) return false; return $r; }
Create a conditional tag for custom taxonomies
In this example, 'student' was a custom post type, and 'stud_cat' was the custom taxonomy. Use
has_student(null)
for the conditionalfunction has_student( $student, $_post = null ) { if ( !empty( $student ) ) return false; if ( $_post ) $_post = get_post( $_post ); else $_post =& $GLOBALS['post']; if ( !$_post ) return false; $r = is_object_in_term( $_post->ID, 'studcat', $student ); if ( is_wp_error( $r ) ) return false; return $r; }
-
Jepense que celaest remplacépar [`has_term ()`] (http://codex.wordpress.org/Function_Reference/has_term)maintenant que la version 3.1est disponible?I think this gets replaced with [`has_term()`](http://codex.wordpress.org/Function_Reference/has_term) now that 3.1 is released?
- 1
- 2011-02-25
- Rarst
-
- 2010-12-28
Faireen sorte que l'éditeur WordPress autorise lesiFrames
//permet à TinyMCE d'autoriser lesiframes add_filter ('tiny_mce_before_init',create_function ('$ a', '$ a ["extended_valid_elements"]="iframe [id| class| title| style| align| frameborder| height| longdesc| marginheight| marginwidth| name| scrolling| src| width]";return $ a; '));
Make WordPress Editor Allow iFrames
// make TinyMCE allow iframes add_filter('tiny_mce_before_init', create_function( '$a', '$a["extended_valid_elements"] = "iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]"; return $a;') );
-
- 2011-02-10
Redimensionner unegrandeimage lors de l'importation
L'image sera redimensionnéeen fonction de lagrandetaille de vosparamètresmultimédias.
/**resize on upload to the largest size in media setting */ function replace_uploaded_image($image_data) { // if there is no large image : return if (!isset($image_data['sizes']['large'])) return $image_data; // path to the uploaded image and the large image $upload_dir = wp_upload_dir(); $uploaded_image_location = $upload_dir['basedir'] . '/' .$image_data['file']; $large_image_location = $upload_dir['path'] . '/'.$image_data['sizes']['large']['file']; // delete the uploaded image unlink($uploaded_image_location); // rename the large image rename($large_image_location,$uploaded_image_location); // update image metadata and return them $image_data['width'] = $image_data['sizes']['large']['width']; $image_data['height'] = $image_data['sizes']['large']['height']; unset($image_data['sizes']['large']); return $image_data; } add_filter('wp_generate_attachment_metadata','replace_uploaded_image');
Resize large image on upload
Image will be resize according to the large size in your media settings.
/**resize on upload to the largest size in media setting */ function replace_uploaded_image($image_data) { // if there is no large image : return if (!isset($image_data['sizes']['large'])) return $image_data; // path to the uploaded image and the large image $upload_dir = wp_upload_dir(); $uploaded_image_location = $upload_dir['basedir'] . '/' .$image_data['file']; $large_image_location = $upload_dir['path'] . '/'.$image_data['sizes']['large']['file']; // delete the uploaded image unlink($uploaded_image_location); // rename the large image rename($large_image_location,$uploaded_image_location); // update image metadata and return them $image_data['width'] = $image_data['sizes']['large']['width']; $image_data['height'] = $image_data['sizes']['large']['height']; unset($image_data['sizes']['large']); return $image_data; } add_filter('wp_generate_attachment_metadata','replace_uploaded_image');
-
Cela signifie-t-il que legrosfichier originaltéléchargéest réellement remplacé?Monphpn'estpasgénial,mais la réponse semble être oui?Does this mean that the original large file uploaded is actually replaced? My php is not great, but the answer seems to be yes?
- 0
- 2011-02-20
- davemac
-
@davemac Jeme rends compte que c'esttrès ancienmaintenant,mais d'après ce queje comprends du code,lefichierimage d'origineest redimensionné auxmêmes dimensions que lataille d'image ``grande '' définie dans l'écran desparamètres de WordPress.Ce quiestgénial,mais vous vous retrouvez avec 2images de lamêmetaille.Je suggérerais de définirmanuellement les valeurspour rendre l'image originale aussigrande que leplusgrosfichier que vous utiliserez demanière réaliste sur votre site.Ensuite,vous avez uneimagepresque originale avec laquelletravailler à l'avenir.@davemac I realise this is very old now, but from what I understand of the code, the original image file is resized to the same dimensions as the 'large' image size set in the WordPress settings screen. Which is great but then you just end up with 2 images of the same size. I'd suggest manually setting the values to make the original image only as big as the largest file you will ever realistically use on your site. Then you have an almost original image to work with in future.
- 0
- 2016-11-25
- Phill Healey
-
- 2011-09-14
Correctifs de sécurité WordPressfaciles
La sécuritépar l'obscuritéest lenom dujeuici. Cesfonctionsfonttrois choses différentes.
- Supprimez la chaîne de version du code. Inutile de dire auxgens quelle versionnous utilisons.
- Supprimetous lesmessages d'erreur (mot depasseincorrect,aucun utilisateur de cetype,etc.) des écrans de connexion de l'administrateur
-
Lorsque l'administrateurpublie un commentaire,une classe CSSest ajoutée. Cela supprime lenom de l'administrateur dans les commentaires.
//REMOVE VERSION STRING FROM HEADER remove_action('wp_head', 'wp_generator'); //HIDE LOGIN ERROR MESSAGES (Wrong Password, No Such User etc.) add_filter('login_errors',create_function('$a', "return null;")); // Remove admin name in comments class // Source: http://www.wprecipes.com/wordpress-hack-remove-admin-name-in-comments-class function remove_comment_author_class( $classes ) { foreach( $classes as $key => $class ) { if(strstr($class, "comment-author-")) { unset( $classes[$key] ); } } return $classes; } add_filter( 'comment_class' , 'remove_comment_author_class' );
Easy WordPress Security Fixes
Security through obscurity is the name of the game here. These functions do three different things.
- Remove the version string from the code. No point in telling folks what version we're running.
- Removes any error messages (Wrong Password, No Such User, etc.) from admin login screens
When the admin posts a comment, a CSS class is added. This removes the admin name in comments.
//REMOVE VERSION STRING FROM HEADER remove_action('wp_head', 'wp_generator'); //HIDE LOGIN ERROR MESSAGES (Wrong Password, No Such User etc.) add_filter('login_errors',create_function('$a', "return null;")); // Remove admin name in comments class // Source: http://www.wprecipes.com/wordpress-hack-remove-admin-name-in-comments-class function remove_comment_author_class( $classes ) { foreach( $classes as $key => $class ) { if(strstr($class, "comment-author-")) { unset( $classes[$key] ); } } return $classes; } add_filter( 'comment_class' , 'remove_comment_author_class' );
-
La suppression dunuméro de version de Wordpressest unemauvaisepratique.Ilestbeaucoupplus sûr degarder votre Wordpress àjour avec les derniers correctifs de sécurité EN TOUT TEMPS.Bonus supplémentaire: les kiddies qui veulent être scriptpasseront aux anciennes versions.Removing the Wordpress version number is bad practice. It is much safer to keep your Wordpress updated with the latest security fixes AT ALL TIMES. Added bonus: wanna-be script kiddies will move along to older versions.
- 0
- 2014-01-12
- knutole
-
@knotole,cen'estpas unemauvaisepratique.C'est votre opinion ...même si c'est assez standard.@knotole, it is not bad practice. It is your opinion... albeit this is pretty standard.
- 2
- 2014-10-20
- Jeremy
-
- 2011-09-14
Remplacer legravatarpar défautpar uneimagepersonnalisée
Il vous suffit depersonnaliser le chemin d'accès à votreimagepar défaut.
function custom_gravatar($avatar_defaults) { $logo = get_bloginfo('template_directory') . '/images/icons/gravatar_logo.jpg'; //Change to whatever path you like. $avatar_defaults[$logo] = get_bloginfo('name'); return $avatar_defaults; }//END FUNCTION add_filter( 'avatar_defaults', 'custom_gravatar' );
Replace Default Gravatar with Custom Image
All you'll need to customize is the path to your default image.
function custom_gravatar($avatar_defaults) { $logo = get_bloginfo('template_directory') . '/images/icons/gravatar_logo.jpg'; //Change to whatever path you like. $avatar_defaults[$logo] = get_bloginfo('name'); return $avatar_defaults; }//END FUNCTION add_filter( 'avatar_defaults', 'custom_gravatar' );
-
- 2011-10-13
Afficher lesfichiersmodèlesinclus
Afficher le commentaireen ligne avec lefichiermodèleet lesfichiersget_template_partinclus lors du rendu despages.Pratiquepour le dépannage desmodèlesen plusieursparties.
add_action('all','template_snoop'); function template_snoop(){ $args = func_get_args(); if( !is_admin() and $args[0] ){ if( $args[0] == 'template_include' ) { echo "<!-- Base Template: {$args[1]} -->\n"; } elseif( strpos($args[0],'get_template_part_') === 0 ) { global $last_template_snoop; if( $last_template_snoop ) echo "\n\n<!-- End Template Part: {$last_template_snoop} -->"; $tpl = rtrim(join('-', array_slice($args,1)),'-').'.php'; echo "\n<!-- Template Part: {$tpl} -->\n\n"; $last_template_snoop = $tpl; } } }
Show template files being included
Display inline comment with Template File and get_template_part files being included when rendering pages. Handy for troubleshooting multipart templates.
add_action('all','template_snoop'); function template_snoop(){ $args = func_get_args(); if( !is_admin() and $args[0] ){ if( $args[0] == 'template_include' ) { echo "<!-- Base Template: {$args[1]} -->\n"; } elseif( strpos($args[0],'get_template_part_') === 0 ) { global $last_template_snoop; if( $last_template_snoop ) echo "\n\n<!-- End Template Part: {$last_template_snoop} -->"; $tpl = rtrim(join('-', array_slice($args,1)),'-').'.php'; echo "\n<!-- Template Part: {$tpl} -->\n\n"; $last_template_snoop = $tpl; } } }
-
- 2011-12-04
Créer automatiquement unenouvellepage lors de l'activation d'unthème
if (isset($_GET['activated']) && is_admin()){ $new_page_title = 'This is the page title'; $new_page_content = 'This is the page content'; $new_page_template = ''; //ex. template-custom.php. Leave blank if you don't want a custom page template. //don't edit under this line $page_check = get_page_by_title($new_page_title); $new_page = array( 'post_type' => 'page', 'post_title' => $new_page_title, 'post_content' => $new_page_content, 'post_status' => 'publish', 'post_author' => 1, ); if(!isset($page_check->ID)){ $new_page_id = wp_insert_post($new_page); if(!empty($new_page_template)){ update_post_meta($new_page_id,'_wp_page_template', $new_page_template); } }
Automatically create a new page upon activating a theme
if (isset($_GET['activated']) && is_admin()){ $new_page_title = 'This is the page title'; $new_page_content = 'This is the page content'; $new_page_template = ''; //ex. template-custom.php. Leave blank if you don't want a custom page template. //don't edit under this line $page_check = get_page_by_title($new_page_title); $new_page = array( 'post_type' => 'page', 'post_title' => $new_page_title, 'post_content' => $new_page_content, 'post_status' => 'publish', 'post_author' => 1, ); if(!isset($page_check->ID)){ $new_page_id = wp_insert_post($new_page); if(!empty($new_page_template)){ update_post_meta($new_page_id,'_wp_page_template', $new_page_template); } }
-
- 2010-09-17
Listertoutes les sous-catégories
Testé sur: Wordpress 3.0.1
$echo = '<ul>' . "\n"; $childcats = get_categories('child_of=' . $cat . '&hide_empty=1'); foreach ($childcats as $childcat) { if (1 == $childcat->category_parent) { $echo .= "\t" . '<li><a href="' . get_category_link($childcat->cat_ID).'" title="' . $childcat->category_description . '">'; $echo .= $childcat->cat_name . '</a>'; $echo .= '</li>' . "\n"; } } $echo .= '</ul>' . "\n"; echo $echo;
aussiici,plus d'informationset defonctionnalités dans l'article http://wpengineer.com/2025/list-all-subcategories/
List all SubCategories
Tested on: Wordpress 3.0.1
$echo = '<ul>' . "\n"; $childcats = get_categories('child_of=' . $cat . '&hide_empty=1'); foreach ($childcats as $childcat) { if (1 == $childcat->category_parent) { $echo .= "\t" . '<li><a href="' . get_category_link($childcat->cat_ID).'" title="' . $childcat->category_description . '">'; $echo .= $childcat->cat_name . '</a>'; $echo .= '</li>' . "\n"; } } $echo .= '</ul>' . "\n"; echo $echo;
also here, more informations and functins in the post http://wpengineer.com/2025/list-all-subcategories/
-
Pourquoiferiez-vous cela alors qu'unefonctionest disponible spécifiquementpour afficher une liste de catégories ... Voir: http://codex.wordpress.org/Template_Tags/wp_list_categories#Only_Show_Children_of_a_CategoryWhy would you do this when there's a function available specifically for displaying a list of categories..See: http://codex.wordpress.org/Template_Tags/wp_list_categories#Only_Show_Children_of_a_Category
- 1
- 2010-11-11
- t31os
-
- 2010-11-09
Exclure les catégoriesenfants d'une catégorie spécifique.
Assez simple,maisje n'aitrouvépersonnefaisantexactement ce dontj'avaisbesoin.En outre,il affichera lemessage si la catégorieparentest sélectionnée,sauf si cemessage a une catégorieenfant de ceparent sélectionné.
/* this code excludes all of the children of (category id = 20) posts on the HOME page, but allows parent (category id = 20) to be shown. */ function exclude_category_children($query) { $child_cats = (array) get_term_children('20', 'category'); if ( $query->is_home ) { $query->set('category__not_in', $child_cats); return $query; } } add_filter('pre_get_posts', 'exclude_category_children');
Exclude child categories of a specific category.
Pretty straight forward, but I couldn't find anyone doing exactly what I needed. Also it will display the post if the parent category is selected, except if that post has a child category of that parent selected.
/* this code excludes all of the children of (category id = 20) posts on the HOME page, but allows parent (category id = 20) to be shown. */ function exclude_category_children($query) { $child_cats = (array) get_term_children('20', 'category'); if ( $query->is_home ) { $query->set('category__not_in', $child_cats); return $query; } } add_filter('pre_get_posts', 'exclude_category_children');
-
- 2010-12-02
Conditionnelpour vérifier le descendant de la hiérarchie
Unefonction conditionnellepour vérifier si lapage couranteest un descendant de l'ID qui luiest donné.Utilepour déterminer si unepageest unpetit-enfant,un arrière-petit-enfant ou unpère dans l'arborescence hiérarchique.
function is_tree($pid) { // $pid = The ID of the page we're looking for pages underneath global $post; // load details about this page $anc = get_post_ancestors( $post->ID ); foreach($anc as $ancestor) { if(is_page() && $ancestor == $pid) { return true; } } if(is_page()&&(is_page($pid))) return true; // we're at the page or at a sub page else return false; // we're elsewhere };
Conditional to check for hierarchy descendant
A conditional function to check if the current page is a descendant of the ID given to it. Useful for determining if a page is a grandchild, great-grandchild or father down the hierarchy tree.
function is_tree($pid) { // $pid = The ID of the page we're looking for pages underneath global $post; // load details about this page $anc = get_post_ancestors( $post->ID ); foreach($anc as $ancestor) { if(is_page() && $ancestor == $pid) { return true; } } if(is_page()&&(is_page($pid))) return true; // we're at the page or at a sub page else return false; // we're elsewhere };
-
Je cherchais ça depuis unmoment.Merci de l'avoir assemblé!Puis-je demander unpeu de clarification sur le cas d'utilisation.Idéalement,je voudrais utiliser cela dansmes listes demenus afin que sij'ai unmenuparent deniveau supérieuren haut du site quin'affiche que les éléments de lagénération 1.Lorsqueje suis sur un élément Gen 2-3,l'élément Gen1peut êtremisen évidence via un attribut css "current-parent".Est-cepossible?I've been looking for this for awhile. Thanks for putting it together! Can I ask for a bit of clarification on use case. Ideally, I would like to use this in my menu listings so that if i have a top level parent menu across the top of the site that only shows Gen 1 elements. When I'm on a Gen 2-3 element, the Gen1 element can be highlighted via a "current-parent" css attribute. Is this possible?
- 0
- 2011-02-11
- Scott B
-
- 2011-06-13
Supprimer lesmenus dubackend d'administrationpourtous les utilisateurs,à l'exception de l'utilisateurn ° 1 (généralement lepremier administrateur)
/*-----------------------------------------------------------------------------------*/ /* Restrict access /*-----------------------------------------------------------------------------------*/ function remove_menus () { global $menu; $user = wp_get_current_user(); if ($user->ID!=1) { // Is not administrator, $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins')); end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);} } } } add_action('admin_menu', 'remove_menus');
Remove Admin Backend Menus for all users, except User #1 (usually the first Admin)
/*-----------------------------------------------------------------------------------*/ /* Restrict access /*-----------------------------------------------------------------------------------*/ function remove_menus () { global $menu; $user = wp_get_current_user(); if ($user->ID!=1) { // Is not administrator, $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins')); end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);} } } } add_action('admin_menu', 'remove_menus');
-
L'utilisateur 1peut être lepremier administrateur.Mais après avoir ajouté denouveaux administrateurs,lepremierpeut êtrejuste un utilisateur régulier.** Demandez des capacités,pas desnombres. ** Deplus,ce code appartient à unplugin,pas aufunctions.php.Iln'y a aucun rapport avec lethème.User 1 may be the first admin. But after adding new administrators the first one may be just a regular user. **Ask for capabilities, not for numbers.** Plus, this code belongs into a plugin, not in the functions.php. There is zero relation to the theme.
- 0
- 2011-06-13
- fuxia
-
De cettefaçon,vouspouvez autorisertous les administrateurs à agirnormalement,maisen mêmetempsmasquer lepremier administrateuret le réserver à l'administrateur système/à l'équipe d'assistance.Jene suispas d'accordpour dire que ce code appartient à unplugin.Functions.phpest unplugin.`Cefichier agitessentiellement comme unplugin` [Theme_Development # Functions_File] (http://codex.wordpress.org/Theme_Development#Functions_File)This way you can allow all admins to act as normal but at the same time hide the first admin and reserve it to system administrator / support team. I disagree that this code belongs to a plugin. Functions.php is a plugin. `This file basically acts like a plugin` [Theme_Development#Functions_File](http://codex.wordpress.org/Theme_Development#Functions_File)
- 0
- 2011-06-13
- Daniel Sachs
-
Mais lefunctions.php contient une logique quiest liée authème,car si vous changez dethème,tout le codeestparti.Donc,àmoins que le codene dépende duthèmeet vice versa -n'utilisezpas lefunctions.php comme unmu-plugin.But the functions.php contains logic which is tied to the theme, because if you switch themes the whole code is gone. So, unless the code depends on the theme and vice versa – do not use the functions.php as a mu-plugin.
- 0
- 2011-06-13
- fuxia
-
Oui.Mais considérons ceci: vous développez un site Webpour un client.Ce site Webn'utiliseratoujours qu'un seulthème,celui conçupar le concepteur.Lethème **est ** le site Web.Vous ajoutez destypes depublicationpersonnalisés,desmétaboxes,chargez desfonctions supplémentaires,etc.Les commentaires sont lesmeilleursexemples)et de donner à l'équipe de support une sorte de "SuperAdmin" afin qu'ellepuisse voirtoute la zone d'administration.Yes. But let's consider this: You are developing a website for a client. This website will always use only one theme, the one designed by the designer. The theme **is** the website. You add custom post types, metaboxes, load additional functions, etc. Now you do want to give some users the admin capabilities, but you want to hide some sections of the site that your client will never use or confuse them (Links, Tools, Comments, are the best examples) and to give the support team a sort of "SuperAdmin" so they can see the whole admin area.
- 0
- 2011-06-13
- Daniel Sachs
-
Je vois que vousn'êtespas d'accord avec l'utilisation,mais lafonctionfonctionneet est utile,doncje ne comprendspaspourquoi -1il.I see that you disagree with the usage, but the function works and is useful, so I do not understand why -1 it.
- 0
- 2011-06-13
- Daniel Sachs
-
Iln’appartientpas à unfunctions.php - commebeaucoup de réponsesici,malheureusement -et il ** va ** cassertôt outard.Enplus de cela,ilenfreint lesnormes de codage WordPress.S'il vousplaît,ne leprenezpaspersonnellement.Mon voteest une recommandationpour le lecteur.It doesn’t belong into a functions.php – like many answers here, unfortunately – and it **will** break sooner or later. Besides that, it violates the WordPress coding standards. Please, don’t take it personally. My vote is a recommendation for the reader.
- 0
- 2011-06-13
- fuxia
-
Bien sûr,rien depersonnel,tosco.Nousessayonstous d'aideret d'apprendre.Nousne sommespas d'accord,ça arrive :)Of course, nothing personal, tosco. We all try to help and learn. We disagree, it happens :)
- 0
- 2011-06-13
- Daniel Sachs
-
@Daniel Sachs Jetez un oeil à [l'essentiel] (https://gist.github.com/942518)et échangez `user_login` avec` role` (?).@Daniel Sachs Take a look at [this gist](https://gist.github.com/942518) and exchange `user_login` with `role`(?).
- 0
- 2011-06-13
- kaiser
-
@kaiser C'estgénial,sije voulais l'utiliser commeplugin ou commemenusnon définispourtous les administrateurs.Commeje l'ai dit,celapermet de désactiverpour un seul utilisateur spécifique avec ID1@kaiser This is great, if I wanted to use it as a plugin or unset menus for all admins. As i said, this allows to unset for just one specific user with ID1
- 0
- 2011-06-13
- Daniel Sachs
-
Si vous regardez leplugin lié,alorsil vouspermet de définir desgroupes d'accèspar "tout ce qu'un utilisateurpropose (nom de connexion,rôle,ID)".S'appuyer sur lespièces d'identitéestgénéralement un concept de «pratiquenonexemplaire».C'esttout ce queje voulais souligner.If you look at the linked plugin, then it allows you to set access groups per "whatever a user offers (login name, role, ID)". Relying on IDs generally is a "not best practice" concept. That's all i wanted to point out.
- 1
- 2011-06-13
- kaiser
-
- 2011-08-19
Désactiver l'avertissement demise àjour dunavigateur dans wordpress 3.2
//Disable browser upgrade warning in wordpress 3.2 function disable_browser_upgrade_warning() { remove_meta_box( 'dashboard_browser_nag', 'dashboard', 'normal' ); } add_action( 'wp_dashboard_setup', 'disable_browser_upgrade_warning' );
Disable browser upgrade warning in wordpress 3.2
//Disable browser upgrade warning in wordpress 3.2 function disable_browser_upgrade_warning() { remove_meta_box( 'dashboard_browser_nag', 'dashboard', 'normal' ); } add_action( 'wp_dashboard_setup', 'disable_browser_upgrade_warning' );
-
Matériel depluginpur.Pure plugin material.
- 0
- 2011-08-19
- fuxia
-
@toscho Et alors?Ilfonctionnetoujours.N'est-cepas?@toscho So what? Still its working. Isn't it?
- 0
- 2011-08-19
- Giri
-
Pas après avoir changé dethème.Lesthèmes sontpour **frontends **.Not after switching themes. Themes are for **frontends**.
- 4
- 2011-08-19
- fuxia
-
- 2011-10-14
Fonction conditionnelleis_tree ()
/* Adapted from csstricks with addition of ancestors .... use = if(is_tree($id)) { // do stuff } ... Returns true if the page is = $id OR any of it's children OR descendants */ function is_tree($pid) { // $pid = The ID of the page we're looking for pages underneath global $post; // load details about this page $ancestors = get_post_ancestors($post); if(is_page()&&($post->post_parent==$pid||is_page($pid)||(in_array($pid,$ancestors)))) return true; // we're at the page or at a sub page else return false; // we're elsewhere };
is_tree() conditional Function
/* Adapted from csstricks with addition of ancestors .... use = if(is_tree($id)) { // do stuff } ... Returns true if the page is = $id OR any of it's children OR descendants */ function is_tree($pid) { // $pid = The ID of the page we're looking for pages underneath global $post; // load details about this page $ancestors = get_post_ancestors($post); if(is_page()&&($post->post_parent==$pid||is_page($pid)||(in_array($pid,$ancestors)))) return true; // we're at the page or at a sub page else return false; // we're elsewhere };
-
- 2011-12-04
Afficher les utilisateurs qui ont soumis leplus de commentaires sansplugin
function top_comment_authors($amount = 5) { global $wpdb; $results = $wpdb->get_results(' SELECT COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url FROM '.$wpdb->comments.' WHERE comment_author_email != "" AND comment_type = "" AND comment_approved = 1 GROUP BY comment_author_email ORDER BY comments_count DESC, comment_author ASC LIMIT '.$amount ); $output = "<ul>"; foreach($results as $result) { $output .= "<li>".$result->comment_author."</li>"; } $output .= "</ul>"; echo $output; }
Autres options que vouspouvez appeler: $ result-> comment_author_email $ result-> comments_count $ result-> comment_author_url
Display the users that have submitted the most comments without a plugin
function top_comment_authors($amount = 5) { global $wpdb; $results = $wpdb->get_results(' SELECT COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url FROM '.$wpdb->comments.' WHERE comment_author_email != "" AND comment_type = "" AND comment_approved = 1 GROUP BY comment_author_email ORDER BY comments_count DESC, comment_author ASC LIMIT '.$amount ); $output = "<ul>"; foreach($results as $result) { $output .= "<li>".$result->comment_author."</li>"; } $output .= "</ul>"; echo $output; }
Other options you can call: $result->comment_author_email $result->comments_count $result->comment_author_url
-
- 2010-09-13
Obtenez l'adresse IP réelle des utilisateurs chaquefois quepossible
Testé sur: Wordpress 3.0.1
Si vous utilisez unproxy ou un équilibreur de charge,ajoutez-le à votrefichier wp-config.php oufunctions.php
// Gets the user's real IP address $_SERVER['REMOTE_ADDR'] = getRealIpAddress(); function getRealIpAddress( $validate = true ) { if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) { $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = trim($ips[count($ips) - 1]); } elseif ( isset($_SERVER['HTTP_X_REAL_IP']) && !empty($_SERVER['HTTP_X_REAL_IP']) ) { $ip = $_SERVER['HTTP_X_REAL_IP']; } elseif ( isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) ) { $ip = $_SERVER['HTTP_CLIENT_IP']; } else { $ip = $_SERVER['REMOTE_ADDR']; } if ( $validate && function_exists('filter_var') && filter_var($ip, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE)) ) return $ip; elseif ( $validate ) return long2ip(ip2long($ip)); return $ip; }
Get the Users Real IP Address whenever possible
Tested on: Wordpress 3.0.1
If you're using a proxy or load balancer, adding this to your wp-config.php file or functions.php
// Gets the user's real IP address $_SERVER['REMOTE_ADDR'] = getRealIpAddress(); function getRealIpAddress( $validate = true ) { if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) { $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = trim($ips[count($ips) - 1]); } elseif ( isset($_SERVER['HTTP_X_REAL_IP']) && !empty($_SERVER['HTTP_X_REAL_IP']) ) { $ip = $_SERVER['HTTP_X_REAL_IP']; } elseif ( isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) ) { $ip = $_SERVER['HTTP_CLIENT_IP']; } else { $ip = $_SERVER['REMOTE_ADDR']; } if ( $validate && function_exists('filter_var') && filter_var($ip, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE)) ) return $ip; elseif ( $validate ) return long2ip(ip2long($ip)); return $ip; }
-
qu'est-ce que celafaitexactement?what does this do exactly?
- 1
- 2010-09-14
- NetConstructor.com
-
Lorsqu'un utilisateurest derrière unproxy ou un équilibreur de charge,tout ce qui saisit l'adresse IP de cet utilisateur à l'aide du superglobal $ _SERVER ['REMOTE_ADDR'] verra l'adresse IP duproxy ou de l'équilibreur de charge.Leproxy/lben retourplace l'adresse IP d'origine de l'utilisateur dans lesen-têtes X-Forwarded-For X-Real-Ip ou Client-Ip (selon la configurationproxy/lb).Ainsi,lors d'un commentaire (ou d'unepublication,mais c'estmoinspertinent),WP verrabeaucoup d'utilisateursprovenant de lamême adresse IP.Cela corrige celaen remplaçant $ _SERVER ['REMOTE_ADDR']par l'adresse IP d'origine.When a user is behind a proxy or load balancer, then anything that grabs that user's IP address using the superglobal $_SERVER['REMOTE_ADDR'] will see the proxy or load balancer's IP address. The proxy/lb in return puts the user's original IP address in the X-Forwarded-For X-Real-Ip, or Client-Ip headers (depending on the proxy/lb configuration). Thus, when commenting (or posting, but that's less relevant) WP will see a lot of users coming from the same IP address. This fixes that by replacing $_SERVER['REMOTE_ADDR'] with the original IP.
- 0
- 2010-09-19
- gabrielk
-
Celles-ci sontfaciles àtromperen ajoutant l'en-tête HTTP_X_FORWARDED_FORmanuellement dans chaque requête dunavigateur.Monpréféréest de le définir 127.0.0.1 qui définiraensuite $ _SERVER ['REMOVE_ADDR'] sur une valeur vide avec cetexemple.Those are easy to trick by adding the HTTP_X_FORWARDED_FOR header manually into each browser request. My favorite is to set it 127.0.0.1 which will then set $_SERVER['REMOVE_ADDR'] to an empty value with that example.
- 0
- 2010-11-05
- hakre
-
- 2010-11-17
Ajout automatique d'images d'en-tête àpartir de l'emplacement du répertoire
Dans lesparamètrespar défautfournis avec wordpress,vous remarquerez unmenu dethème supplémentaire qui s'activeet vouspermet de sélectionner uneimage d'en-tête à utiliser. Dans le code dethèmepar défaut,cesimages sont codéesen dur dans lefichierfunctions.php. Le code ci-dessouspermet à wordpress de récupérer automatiquement denouvellesimagesbasées sur uneimage d'en-tête spécifique directement que vouspouvez créer sur votre serveur (ou dans votre dossier dethèmes).
Ilinclura automatiquementtous lesfichiers .jpg ou .jpeg. Chaqueimage doit avoir unfichier de vignettes associé,maisilpeut simplement s'agir d'une copie de l'original avec unnom différent avec unnom defichier qui doit seterminerpar "-thumbnail". Lenom associéest utilisé comme description dans lesparamètres d'apparence desen-têteset lestraits de soulignement sont automatiquement remplacéspar desespaces. (parexemple,My_Header_Image_A.jpg,My_Header_Image_A=thumbnail.jpg aura une description automatiquementprésentée comme "Monimage d'en-tête A")
if ($handle = opendir( TEMPLATEPATH . '/images/headers/') ) { $headers = array(); while (false !== ($file = readdir($handle))) { $pos = strrpos( $file, '.' ); if( $pos !== false && $pos > 0 ) { $file_name = substr( $file, 0, $pos ); if( strpos( $file_name, "-thumbnail" ) === false ) { $file_ext = substr( $file, $pos+1 ); $file_ext_low = strtolower( $file_ext ); if( $file_ext_low == "jpg" || $file_ext_low == "jpeg" ) { $headers[$file_name] = array ( 'url' => '%s/images/headers/' . $file, 'thumbnail_url' => '%s/images/headers/' . $file_name ."-thumbnail." . $file_ext, 'description' => __( str_replace( "_", " ", $file_name ), 'twentyten' ) ); } } } } closedir($handle); register_default_headers( $headers ); }
Automatically adding header images from directory location
Within the default them which comes with wordpress you will notice an additional theme menu which gets activated that lets you select a header image to be utilized. Within the default theme code these images are hardcoded into the functions.php file. The code below allows wordpress to automatically pick up new images based upon a specific header image directly you can create on your server (or within your themes folder).
It will automatically include any .jpg or .jpeg files. Every image must have a associating thumbnail file but this can just be a copy of the original with a different name with a file name that has to end in "-thumbnail". The associating name is used as the description in the headers appearance settings and underscores are automatically replaced with spaces. (e.g. My_Header_Image_A.jpg, My_Header_Image_A=thumbnail.jpg will have a description automatically presented a “My Header Image A”)
if ($handle = opendir( TEMPLATEPATH . '/images/headers/') ) { $headers = array(); while (false !== ($file = readdir($handle))) { $pos = strrpos( $file, '.' ); if( $pos !== false && $pos > 0 ) { $file_name = substr( $file, 0, $pos ); if( strpos( $file_name, "-thumbnail" ) === false ) { $file_ext = substr( $file, $pos+1 ); $file_ext_low = strtolower( $file_ext ); if( $file_ext_low == "jpg" || $file_ext_low == "jpeg" ) { $headers[$file_name] = array ( 'url' => '%s/images/headers/' . $file, 'thumbnail_url' => '%s/images/headers/' . $file_name ."-thumbnail." . $file_ext, 'description' => __( str_replace( "_", " ", $file_name ), 'twentyten' ) ); } } } } closedir($handle); register_default_headers( $headers ); }
-
- 2011-03-21
Supprimer le lien "Commentaires" de labarre d'administration si l'état du commentaireestfermé
Vouspouvez définir l'état des commentairespar défaut sur "fermé",mais le lien des commentaires restera.Déposez simplement ce qui suit dans votrefichier
functions.php
pour vousen débarrasseren fonction de la condition.Propose 2 approches différentes./** * Disable 'Comments' link if default status is _closed_ */ function remove_comments() { $default_comment_status = get_option( 'default_comment_status' ); if ( $default_comment_status == 'closed' ) { remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 50 ); // optional solution using the WP_Admin_Bar class from /wp-includes/class-wp-admin-bar.php # global $wp_admin_bar; # $wp_admin_bar->remove_menu( 'comments' ); } else { return; } }
Remove "Comments" link from admin bar if comment status is closed
You can set the default comment status to 'closed', but the comments link will stay. Simply drop the following into your
functions.php
file to get rid of it based on the condition. Offers 2 different approaches./** * Disable 'Comments' link if default status is _closed_ */ function remove_comments() { $default_comment_status = get_option( 'default_comment_status' ); if ( $default_comment_status == 'closed' ) { remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 50 ); // optional solution using the WP_Admin_Bar class from /wp-includes/class-wp-admin-bar.php # global $wp_admin_bar; # $wp_admin_bar->remove_menu( 'comments' ); } else { return; } }
-
- 2011-11-30
Ajoute une option de liste déroulantepersonnalisée à WP_NAV_MENUS où l'utilisateurpeut sélectionner une classe cssprédéfiniepour chaque élément demenu
<?php function menu_item_class_select(){ global $pagenow; if ($pagenow == "nav-menus.php"){ ?> <script> jQuery(document).ready(function(){ function create_dd(v){ //create dropdown var dd = jQuery('<select class="my_class"></select>'); //create dropdown options //array with the options you want var classes = ["","class1","class2","class3"]; jQuery.each(classes, function(i,val) { if (v == val){ dd.append('<option value="'+val+'" selected="selected">'+val+'</option>'); }else{ dd.append('<option value="'+val+'">'+val+'</option>'); } }); return dd; } jQuery(".edit-menu-item-classes").each(function() { //add dropdown var t = create_dd(jQuery(this).val()); jQuery(this).before(t); //hide all inputs jQuery(this).css("display","none"); }); //update input on selection jQuery(".my_class").bind("change", function() { var v = jQuery(this).val(); var inp = jQuery(this).next(); inp.attr("value",v); }); }); </script> <?php } } add_action('admin_footer','menu_item_class_select'); ?>
Adds a custom dropdown option to WP_NAV_MENUS where the user can select a predefined css class for each menu item
<?php function menu_item_class_select(){ global $pagenow; if ($pagenow == "nav-menus.php"){ ?> <script> jQuery(document).ready(function(){ function create_dd(v){ //create dropdown var dd = jQuery('<select class="my_class"></select>'); //create dropdown options //array with the options you want var classes = ["","class1","class2","class3"]; jQuery.each(classes, function(i,val) { if (v == val){ dd.append('<option value="'+val+'" selected="selected">'+val+'</option>'); }else{ dd.append('<option value="'+val+'">'+val+'</option>'); } }); return dd; } jQuery(".edit-menu-item-classes").each(function() { //add dropdown var t = create_dd(jQuery(this).val()); jQuery(this).before(t); //hide all inputs jQuery(this).css("display","none"); }); //update input on selection jQuery(".my_class").bind("change", function() { var v = jQuery(this).val(); var inp = jQuery(this).next(); inp.attr("value",v); }); }); </script> <?php } } add_action('admin_footer','menu_item_class_select'); ?>
-
- 2011-12-19
Supprimer les éléments dumenu de labarre d'administration de WordPress 3.3
function dashboard_tweaks() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); $wp_admin_bar->remove_menu('about'); $wp_admin_bar->remove_menu('wporg'); $wp_admin_bar->remove_menu('documentation'); $wp_admin_bar->remove_menu('support-forums'); $wp_admin_bar->remove_menu('feedback'); $wp_admin_bar->remove_menu('view-site'); } add_action( 'wp_before_admin_bar_render', 'dashboard_tweaks' );
Référence: http://pastebin.com/Wrk0JPxw
Remove WordPress 3.3 Admin Bar Menu Items
function dashboard_tweaks() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); $wp_admin_bar->remove_menu('about'); $wp_admin_bar->remove_menu('wporg'); $wp_admin_bar->remove_menu('documentation'); $wp_admin_bar->remove_menu('support-forums'); $wp_admin_bar->remove_menu('feedback'); $wp_admin_bar->remove_menu('view-site'); } add_action( 'wp_before_admin_bar_render', 'dashboard_tweaks' );
Reference: http://pastebin.com/Wrk0JPxw
-
- 2010-11-04
Exclure la catégoriepar défaut despagespubliques
Exclut la catégoriepar défaut de laface avant du site Web.
Le codeexclut la zone d'administration,sinon vousn'aurez aucunmoyen degérer lesmessages attribués à la catégoriepar défaut.add_filter( 'list_terms_exclusions', 'exclude_default_cat' ); function exclude_default_cat( $exclusions ) { if( !is_admin() ) $exclusions .= "AND t.term_id != " . get_option( 'default_category' ) . " "; return $exclusions; }
Exclude default category from public pages
Excludes the default category from the front-facing side of the website.
Code excludes the admin area, else you'll have no way to manage posts assigned with the default category.add_filter( 'list_terms_exclusions', 'exclude_default_cat' ); function exclude_default_cat( $exclusions ) { if( !is_admin() ) $exclusions .= "AND t.term_id != " . get_option( 'default_category' ) . " "; return $exclusions; }
-
- 2010-12-03
Affichage desinformationspour les utilisateurs connectés
if ( is_user_logged_in() ) { }
ne fonctionnepas dans lefichierfunctions.php.Vouspouvez utiliser ce code:
if ( !function_exists('is_user_logged_in') ) : function is_user_logged_in() { $user = wp_get_current_user(); if ( $user->id == 0 ){ // This section if user is not logged in } else { // This section if user is logged in } } endif;
Displaying information for logged in users
if ( is_user_logged_in() ) { }
is not working in functions.php file. You can use this code:
if ( !function_exists('is_user_logged_in') ) : function is_user_logged_in() { $user = wp_get_current_user(); if ( $user->id == 0 ){ // This section if user is not logged in } else { // This section if user is logged in } } endif;
-
`if (! current_user_can ('read'))` devrait attraper lesinvités (c'est-à-dire les utilisateursnon connectés) ..`if( !current_user_can('read') )` should catch guests (ie. non-logged in users) ..
- 0
- 2010-12-07
- t31os
-
Je viens de letesteret `is_user_logged_in ()` semblefonctionnertrèsbien dans `functions.php`? .. Desinformations defond surpourquoiiln'estpas censé lefaire?I just tested it and `is_user_logged_in()` seems to work just fine in `functions.php`?.. Any background info on why it's not supposed to?
- 2
- 2011-01-26
- Rarst
-
- 2011-06-13
Logospersonnaliséspour lapage de connexionet l'administrateur
/*-----------------------------------------------------------------------------------*/ /* Custom logos /*-----------------------------------------------------------------------------------*/ function custom_admin_logo() { echo ' <style type="text/css"> #header-logo { background-image: url('.get_bloginfo('template_directory').'/path/to/images/admin-logo.png) !important; } </style> '; } add_action('admin_head', 'custom_admin_logo'); function custom_login_logo() { echo '<style type="text/css"> h1 a { background-image:url('.get_bloginfo('template_directory').'/path/to/images/login-logo.png) !important; } </style>'; } add_action('login_head', 'custom_login_logo');
Custom Logos for Login page and Admin
/*-----------------------------------------------------------------------------------*/ /* Custom logos /*-----------------------------------------------------------------------------------*/ function custom_admin_logo() { echo ' <style type="text/css"> #header-logo { background-image: url('.get_bloginfo('template_directory').'/path/to/images/admin-logo.png) !important; } </style> '; } add_action('admin_head', 'custom_admin_logo'); function custom_login_logo() { echo '<style type="text/css"> h1 a { background-image:url('.get_bloginfo('template_directory').'/path/to/images/login-logo.png) !important; } </style>'; } add_action('login_head', 'custom_login_logo');
-
Veuillezjeter un œil à [cet élémentessentiel] (https://gist.github.com/671743).Ilexiste des optionsencoremeilleures que cellesindiquées dans l'essentiel.Vouspouvez égalementessayer departiciper autickettrac (lien dans l'en-tête duplugingist).Please take a look at [this gist](https://gist.github.com/671743). There are even better options than shown in the gist. You could also try to participate on the trac ticket (link in gist plugin header).
- 2
- 2011-06-13
- kaiser
-
- 2011-06-13
Supprimer l'administrateur (utilisateurn ° 1) de la liste d'utilisateurs
function your_pre_user_query($user_search) { $user = wp_get_current_user(); if ($user->ID!=1) { global $wpdb; $user_search->query_where = str_replace('WHERE 1=1', "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where); } } add_action('pre_user_query','your_pre_user_query');
Remove Admin (User #1) from User list
function your_pre_user_query($user_search) { $user = wp_get_current_user(); if ($user->ID!=1) { global $wpdb; $user_search->query_where = str_replace('WHERE 1=1', "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where); } } add_action('pre_user_query','your_pre_user_query');
-
Encore unefois: l'utilisateur 1peut être unnon-administrateur.Voir [Roles and Capabilities] (http://codex.wordpress.org/Roles_and_Capabilities).Again: user 1 may be a non-admin. See [Roles and Capabilities](http://codex.wordpress.org/Roles_and_Capabilities).
- 0
- 2011-06-13
- fuxia
-
C'est unexemple.Deplus,dans lesinstallationspar défaut,l'utilisateur 1est Admin - lepremier utilisateur créé.C'estpourquoij'ai souligné (Utilisateurn ° 1)It's an example. Plus in default installations the user 1 is Admin - the first user created. This is why I emphasized (User #1)
- 0
- 2011-06-13
- Daniel Sachs
-
C'est unexemplemontrant commentne pas vérifier les capacités administratives.Vousne devezpas utiliser ce code dans un vrai site Web.It is an example showing how not to check for administrative capabilities. You should not use this code in a real website.
- 0
- 2011-06-13
- fuxia
-
Exactement.Ce codene vérifiepas les capacités,toscho,maispour un utilisateur spécifique.Ce coden'a rien à voir avec les capacitéset jen'aimentionné les capacitésnullepart.Jene voispaspourquoi celane peutpas être utilisé sur les sites deproduction.Exactly. This code doesn't check for capabilities, toscho, but for specific user. This code has nothing to do with capabilities and I haven't mentioned capabilities anywhere. I don't see why this can not be used on production sites.
- 0
- 2011-06-13
- Daniel Sachs
-
@Daniel Sachs Si vous recherchez lepremier administrateur ajouté,veuillez d'abord vérifier les rôles detous les utilisateurs,puis lestrierpar leuridentifiantet choisir lepremier.Comme @toscho l'a dit: Actuellement,c'est "comment vousne devriezpas lefaireparexemple".Raisons: a) l'administrateur réelpourraitne pas être celui avec l'ID leplusbasb) Si quelqu'un d'autretravaillait là-dessus,il/ellene chercheraitpas cettefonctionnalité dans unthème.@Daniel Sachs If you're searching for the first ever added administrator, please check the roles of all users first, then sort them by their ID and take the first one. As @toscho said: Currently it's "how you should not do it example". Reasons: a) the actual Admin might not be the one with the lowest ID b) If someone else would work on this, she/he wouldn't search for this functionality in a theme.
- 0
- 2011-06-13
- kaiser
-
- 2011-09-14
Obtenir les attributs de laminiature donnée
Utilisez cettefonction avec labouclepour déterminer la largeur,la hauteuret l'URL d'uneimageminiature. Trèspratiquepour attribuer uneimageminiature comme élément d'arrière-plan via CSSen ligne.
/** * GET THUMBNAIL ATTRIBUTES * * Fetches width, heigth and URI of a thumbnail. * * @author Philip Downer <[email protected]> * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version v1.0 * * @param string $return Accepts 'path', 'width', or 'height'. * @param string $size The thumbnail size corresponding to {@link add_image_size() WP core function}. * @return mixed Returns the requested info, or if no 'Featured Image' assigned, returns 'false'. */ function get_thumb_attr($return,$size='thumbnail') { global $post; if (has_post_thumbnail($post->ID)) { $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'intro'); if ( $return == 'path' ) { return $thumb[0]; } if ( $return == 'width' ) { return $thumb[1]; } if ( $return == 'height' ) { return $thumb[2]; } } else { return false; } }//end function
Get Attributes of Given Thumbnail
Use this function with the loop to determine width, height and URL of a thumbnailed image. Very handy for assigning a thumbnailed image as a background element via inline CSS.
/** * GET THUMBNAIL ATTRIBUTES * * Fetches width, heigth and URI of a thumbnail. * * @author Philip Downer <[email protected]> * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version v1.0 * * @param string $return Accepts 'path', 'width', or 'height'. * @param string $size The thumbnail size corresponding to {@link add_image_size() WP core function}. * @return mixed Returns the requested info, or if no 'Featured Image' assigned, returns 'false'. */ function get_thumb_attr($return,$size='thumbnail') { global $post; if (has_post_thumbnail($post->ID)) { $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'intro'); if ( $return == 'path' ) { return $thumb[0]; } if ( $return == 'width' ) { return $thumb[1]; } if ( $return == 'height' ) { return $thumb[2]; } } else { return false; } }//end function
-
- 2011-11-17
Affiche le contenu d'un widgeten dehors du contexte d'unebarre latéraleen utilisant son ID. L'habillage avant/après HTMLn'estpasinclus. Vous devez connaître l'ID spécifique du widget que vous recherchez (parexemple 'text-5').
function widget_contents($id) { list($type,$number) = explode('-',$id); global $wp_registered_widgets; $wp_registered_widgets[$id]['callback'][0]->display_callback(array('widget_id'=>$id),$number); }
Vouspouvezjeter un œil à la sortie de wp_get_sidebars_widgets () si vousn'êtespas sûr de l'IDprécis dont vous avezbesoin.
Unexempleplus completextrait de /wp-includes/widgets.php sous lafonction dynamic_sidebar () :
function render_widget($id) { global $wp_registered_widgets; $params = array_merge( array( array('widget_id' => $id, 'widget_name' => $wp_registered_widgets[$id]['name']) ), (array) $wp_registered_widgets[$id]['params'] ); $classname_ = ''; foreach ( (array) $wp_registered_widgets[$id]['classname'] as $cn ) { if ( is_string($cn) ) $classname_ .= '_' . $cn; elseif ( is_object($cn) ) $classname_ .= '_' . get_class($cn); } $classname_ = ltrim($classname_, '_'); $params[0]['before_widget'] = sprintf($params[0]['before_widget'], $id, $classname_); if ( is_callable($wp_registered_widgets[$id]['callback']) ) call_user_func_array($wp_registered_widgets[$id]['callback'], $params); }
Output the contents of a widget outside the context of a sidebar using it's ID. The wrapping before/after HTML is not included. You need to know the specific ID of the widget you're angling for (ie 'text-5').
function widget_contents($id) { list($type,$number) = explode('-',$id); global $wp_registered_widgets; $wp_registered_widgets[$id]['callback'][0]->display_callback(array('widget_id'=>$id),$number); }
You can peek at the output of wp_get_sidebars_widgets() if you aren't sure of the precise ID you need.
A more complete example lifted from /wp-includes/widgets.php under the dynamic_sidebar() function:
function render_widget($id) { global $wp_registered_widgets; $params = array_merge( array( array('widget_id' => $id, 'widget_name' => $wp_registered_widgets[$id]['name']) ), (array) $wp_registered_widgets[$id]['params'] ); $classname_ = ''; foreach ( (array) $wp_registered_widgets[$id]['classname'] as $cn ) { if ( is_string($cn) ) $classname_ .= '_' . $cn; elseif ( is_object($cn) ) $classname_ .= '_' . get_class($cn); } $classname_ = ltrim($classname_, '_'); $params[0]['before_widget'] = sprintf($params[0]['before_widget'], $id, $classname_); if ( is_callable($wp_registered_widgets[$id]['callback']) ) call_user_func_array($wp_registered_widgets[$id]['callback'], $params); }
-
Doh.Laméthodebeaucoupplus simple serait d'utiliser `the_widget ()` http://codex.wordpress.org/Function_Reference/the_widgetDoh. The much simpler method would be to use `the_widget()` http://codex.wordpress.org/Function_Reference/the_widget
- 0
- 2012-02-08
- dalethedeveloper
-
- 2011-12-04
Smileyspersonnalisés (plugin)
/** * Smilies. */ function filter_smilies_src($img_src, $img, $siteurl) { return plugins_url('', __FILE__) . '/img/smilies/' . $img; } add_filter('smilies_src', 'filter_smilies_src', 1, 10);
Smileyspersonnalisés (thème)
/** * Smilies. */ function filter_smilies_src($img_src, $img, $siteurl) { return get_bloginfo('stylesheet_directory') . '/images/smilies/' . $img; } add_filter('smilies_src', 'filter_smilies_src', 1, 10);
Custom smilies (plugin)
/** * Smilies. */ function filter_smilies_src($img_src, $img, $siteurl) { return plugins_url('', __FILE__) . '/img/smilies/' . $img; } add_filter('smilies_src', 'filter_smilies_src', 1, 10);
Custom smilies (theme)
/** * Smilies. */ function filter_smilies_src($img_src, $img, $siteurl) { return get_bloginfo('stylesheet_directory') . '/images/smilies/' . $img; } add_filter('smilies_src', 'filter_smilies_src', 1, 10);
-
- 2012-02-03
Requête debalises detaxonomie croisée
Une requêteen cache quigénère une chaîne HTML semblable à
get_tags()
detoutes lesbalisespour unparamètre detaxonomie donnépar défaut sur une catégorie . Vouspouvez utiliser$where_slug
et$where_tax
pour obtenir desbalises depublicationfiltréespartoute autretaxonomie. SQLtestépour WP 3.1 à WP 3.3.1.function tags_by_other_taxonomy($where_slug,$where_tax = 'category',$bust_cache = false) { $cache_key = "{$where_slug}:{$where_tax}"; $cache = get_transient('tags_by_other_taxonomy'); $html = ''; if( true !== $bust_cache and false !== $cache and isset($cache[$cache_key]) and !empty($cache[$cache_key]) ) { $html = $cache[$cache_key]; } else { global $wpdb; $cat_id = $wpdb->get_var("SELECT tt.term_taxonomy_id FROM $wpdb->terms t INNER JOIN $wpdb->term_taxonomy tt ON t.term_id = tt.term_id WHERE t.slug = '{$where_slug}' AND tt.taxonomy = '{$where_tax}' LIMIT 1"); if( !empty($cat_id) ) { $cat_posts = $wpdb->get_col("SELECT tr.object_id FROM $wpdb->term_relationships tr inner join $wpdb->posts p ON p.ID = tr.object_id WHERE term_taxonomy_id = {$cat_id} AND p.post_status = 'publish' AND p.post_type = 'post'"); if( count($cat_posts) ) { $tags = $wpdb->get_results("SELECT DISTINCT t.name,t.slug FROM $wpdb->term_taxonomy tt INNER JOIN $wpdb->term_relationships tr ON tt.term_taxonomy_id = tr.term_taxonomy_id INNER JOIN $wpdb->terms t ON t.term_id = tt.term_id WHERE tt.taxonomy = 'post_tag' and tr.object_id IN (".implode(',',$cat_posts) .')'); $html = '<ul class="post-tags-'.$where_slug.'">'; if( count($tags) ) { foreach($tags as $tag) $html .= '<li><a href="/tag/'.$tag->slug.'/" title="Posts tagged with '.$tag->name.'">'.$tag->name.'</a></li>'; } $html .= '</ul>'; if( !is_array($cache) ) $cache = array(); $cache[$cache_key] = $html; set_transient('sc_cross_tax', $cache, 86400); } } } echo $html; }
Parexemple,récupéreztoutes lesbalises des articlespubliés dans le slug de catégorie actualités :
<?php echo tags_by_other_taxonomy('news'); ?>
Cross Taxonomy Tags Query
A cached query that outputs a
get_tags()
like HTML string of all tags for a given Taxonomy parameter defaulting to a Category. You can use$where_slug
and$where_tax
to get post tags filtered by any other taxonomy. SQL tested for WP 3.1 to WP 3.3.1.function tags_by_other_taxonomy($where_slug,$where_tax = 'category',$bust_cache = false) { $cache_key = "{$where_slug}:{$where_tax}"; $cache = get_transient('tags_by_other_taxonomy'); $html = ''; if( true !== $bust_cache and false !== $cache and isset($cache[$cache_key]) and !empty($cache[$cache_key]) ) { $html = $cache[$cache_key]; } else { global $wpdb; $cat_id = $wpdb->get_var("SELECT tt.term_taxonomy_id FROM $wpdb->terms t INNER JOIN $wpdb->term_taxonomy tt ON t.term_id = tt.term_id WHERE t.slug = '{$where_slug}' AND tt.taxonomy = '{$where_tax}' LIMIT 1"); if( !empty($cat_id) ) { $cat_posts = $wpdb->get_col("SELECT tr.object_id FROM $wpdb->term_relationships tr inner join $wpdb->posts p ON p.ID = tr.object_id WHERE term_taxonomy_id = {$cat_id} AND p.post_status = 'publish' AND p.post_type = 'post'"); if( count($cat_posts) ) { $tags = $wpdb->get_results("SELECT DISTINCT t.name,t.slug FROM $wpdb->term_taxonomy tt INNER JOIN $wpdb->term_relationships tr ON tt.term_taxonomy_id = tr.term_taxonomy_id INNER JOIN $wpdb->terms t ON t.term_id = tt.term_id WHERE tt.taxonomy = 'post_tag' and tr.object_id IN (".implode(',',$cat_posts) .')'); $html = '<ul class="post-tags-'.$where_slug.'">'; if( count($tags) ) { foreach($tags as $tag) $html .= '<li><a href="/tag/'.$tag->slug.'/" title="Posts tagged with '.$tag->name.'">'.$tag->name.'</a></li>'; } $html .= '</ul>'; if( !is_array($cache) ) $cache = array(); $cache[$cache_key] = $html; set_transient('sc_cross_tax', $cache, 86400); } } } echo $html; }
For example, get all tags for Published Posts in the news Category slug:
<?php echo tags_by_other_taxonomy('news'); ?>
-
- 2010-09-09
Repositionner l'éditeur WYSIWYG via JQUERY
Testé sur: Wordpress 3.0.1
Ce code vouspermettra de supprimer desmetabox spécifiques que wordpress ajoutepar défaut aux écrans POSTet PAGES.
// REPOSITION WYSIWYG EDITOR THROUGH JQUERY add_action('admin_head','admin_head_hook'); function admin_head_hook() { ?><style type="text/css"> #postdiv.postarea, #postdivrich.postarea { margin:0; } #post-status-info { line-height:1.4em; font-size:13px; } .custom-wysiwyg-editor-container { margin:2px 6px 6px 6px; } #ed_toolbar { display:none; } #postdiv #ed_toolbar, #postdivrich #ed_toolbar { display:block; } </style><?php } add_action('admin_footer','admin_footer_hook'); function admin_footer_hook() { ?><script type="text/javascript"> jQuery('#postdiv, #postdivrich').prependTo('.custom-wysiwyg-editor-container'); </script><?php }
Reposition the WYSIWYG Editor through JQUERY
Tested on: Wordpress 3.0.1
This code will allow you to remove specific meta boxes which wordpress adds by default to the POST and PAGES screens.
// REPOSITION WYSIWYG EDITOR THROUGH JQUERY add_action('admin_head','admin_head_hook'); function admin_head_hook() { ?><style type="text/css"> #postdiv.postarea, #postdivrich.postarea { margin:0; } #post-status-info { line-height:1.4em; font-size:13px; } .custom-wysiwyg-editor-container { margin:2px 6px 6px 6px; } #ed_toolbar { display:none; } #postdiv #ed_toolbar, #postdivrich #ed_toolbar { display:block; } </style><?php } add_action('admin_footer','admin_footer_hook'); function admin_footer_hook() { ?><script type="text/javascript"> jQuery('#postdiv, #postdivrich').prependTo('.custom-wysiwyg-editor-container'); </script><?php }
-
- 2010-09-09
Fermer automatiquement lesbalisesmanquantes depuis l'éditeur WYSIWYG
Testé sur: Wordpress 3.0.1
Ce codefermera automatiquementtoutes lesbalisesmanquantes lors de l'utilisation de l'éditeur WYSIWYG.
// AUTOMATICALLY CLEAN UP HTML WYSIWYG EDITOR BY CLOSING MISSING TAGS function clean_bad_content($bPrint = false) { global $post; $szPostContent = $post->post_content; $szRemoveFilter = array("~<p[^>]*>\s?</p>~", "~<a[^>]*>\s?</a>~", "~<font[^>]*>~", "~<\/font>~", "~style\=\"[^\"]*\"~", "~<span[^>]*>\s?</span>~"); $szPostContent = preg_replace($szRemoveFilter, '', $szPostContent); $szPostContent = apply_filters('the_content', $szPostContent); if ($bPrint == false) return $szPostContent; else echo $szPostContent; }
Automatically close missing tags from the WYSIWYG editor
Tested on: Wordpress 3.0.1
This code will automatically close any missing tags when using the WYSIWYG editor.
// AUTOMATICALLY CLEAN UP HTML WYSIWYG EDITOR BY CLOSING MISSING TAGS function clean_bad_content($bPrint = false) { global $post; $szPostContent = $post->post_content; $szRemoveFilter = array("~<p[^>]*>\s?</p>~", "~<a[^>]*>\s?</a>~", "~<font[^>]*>~", "~<\/font>~", "~style\=\"[^\"]*\"~", "~<span[^>]*>\s?</span>~"); $szPostContent = preg_replace($szRemoveFilter, '', $szPostContent); $szPostContent = apply_filters('the_content', $szPostContent); if ($bPrint == false) return $szPostContent; else echo $szPostContent; }
-
Justepour vousfaire savoir qu'ilexiste une optionpour lefaire dans WordPress lui-même.L'informatiquepeut être utile si l'on abesoin de laforcerpourplusieurs utilisateurs quel que soit leur réglage.Maisje forcerais la sauvegarde de ceparamètre à laplace.Just to let you know there is an option of doing that in WordPress itself. IT can be useful if one needs to force it for multiple users irrespective of their setting. But I would force saving that setting instead.
- 0
- 2011-04-20
- Ashfame
-
- 2011-01-28
Supprimer les attributs
role="search"
pourget_search_form()
function remove_role_search($role) { $result = array(); preg_match_all('|role="[^"]*"|U', $role, $result); foreach ($result[0] as $role_tag) { $role = str_replace($role_tag, '', $role); } return $role; } add_filter('get_search_form', 'remove_role_search');
Remove
role="search"
attributes forget_search_form()
function remove_role_search($role) { $result = array(); preg_match_all('|role="[^"]*"|U', $role, $result); foreach ($result[0] as $role_tag) { $role = str_replace($role_tag, '', $role); } return $role; } add_filter('get_search_form', 'remove_role_search');
-
- 2011-02-23
Ajouter un lien de connexion à wp_nav_menu
//ADD LOGIN LINK TO MENU add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2); function add_login_logout_link($items, $args) { $loginoutlink = wp_loginout('index.php', false); $items .= '<li>'. $loginoutlink .'</li>'; return $items; }
Add a Login Link to wp_nav_menu
//ADD LOGIN LINK TO MENU add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2); function add_login_logout_link($items, $args) { $loginoutlink = wp_loginout('index.php', false); $items .= '<li>'. $loginoutlink .'</li>'; return $items; }
-
N'utilisezpas demiseen mémoiretampon de sortie.`wp_loginout ()` a un deuxièmeparamètre `$echo`pour vousfaciliter la vie.Do not use output buffering. `wp_loginout()` has a second parameter `$echo` to make your life easier.
- 3
- 2011-02-23
- fuxia
-
- 2011-05-12
Changement dunom dumenu "Articles" dans l'administrateuren ce que vous souhaitez (parexemple,"Articles")
// hook the translation filters add_filter('gettext','change_post_to_article'); add_filter('ngettext','change_post_to_article'); function change_post_to_article( $translated ) { $translated = str_ireplace('Post','Article',$translated );// ireplace is PHP5 only return $translated; }
Crédits à smashingmagazine.com
Changing "Posts" menu name in admin to whatever you wish (e.g. "Articles")
// hook the translation filters add_filter('gettext','change_post_to_article'); add_filter('ngettext','change_post_to_article'); function change_post_to_article( $translated ) { $translated = str_ireplace('Post','Article',$translated );// ireplace is PHP5 only return $translated; }
Credits to smashingmagazine.com
-
- 2011-09-14
Élément demenu Supprimer les liens
Beaucoup demesinstallations WordPressne nécessitentpas que les utilisateurs aient accès à l'élément demenu "Liens".Cettefonction le supprime de la vue.
add_action( 'admin_menu', 'custom_admin_menu' ); function custom_admin_menu() { global $menu; // var_dump($menu); // use this to identify the key for the menu item you want to remove unset( $menu[15] ); //key 15 is links if ( !current_user_can('manage_options') ) { unset( $menu[75] ); } //key 75 is tools ... but only for non super admins }
Remove Links Menu Item
Many of my WordPress installs don't require that users have access to the 'Links' menu item. This function removes it from view.
add_action( 'admin_menu', 'custom_admin_menu' ); function custom_admin_menu() { global $menu; // var_dump($menu); // use this to identify the key for the menu item you want to remove unset( $menu[15] ); //key 15 is links if ( !current_user_can('manage_options') ) { unset( $menu[75] ); } //key 75 is tools ... but only for non super admins }
-
- 2011-09-14
Désactiver lemessage demise àjourmaintenantpour lesnon-administrateurs
Je suisen fait ungrandfan de NE PAS utiliser ce code.Au lieu de cela,je préfèrepermettre aux clients demettre àjour leurspropresinstallations WordPress.Cela aide àgarder le site àjouret meforce à écrire unmeilleur code.
if ( !current_user_can( 'manage_options' ) ) { add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); }
Disable Upgrade Now Message for Non-Administrators
I'm actually a big fan of NOT using this code. Instead, I prefer to allow customers to update their own WordPress installs. This helps keep the site up-to-date and forces me to write better code.
if ( !current_user_can( 'manage_options' ) ) { add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); }
-
- 2011-12-04
Ajouter une classepersonnalisée aux liens suivantet précédent
add_filter('next_posts_link_attributes', 'posts_link_attributes'); add_filter('previous_posts_link_attributes', 'posts_link_attributes'); function posts_link_attributes(){ return 'class="styled-button"'; }
Add a custom class to the next and previous links
add_filter('next_posts_link_attributes', 'posts_link_attributes'); add_filter('previous_posts_link_attributes', 'posts_link_attributes'); function posts_link_attributes(){ return 'class="styled-button"'; }
-
- 2011-12-04
Ajouter automatiquement un champpersonnalisémasquéet associer une valeur à unmessage lors de sapublication
add_action('publish_page', 'add_custom_field_automatically'); add_action('publish_post', 'add_custom_field_automatically'); function add_custom_field_automatically($post_ID) { global $wpdb; if(!wp_is_post_revision($post_ID)) { add_post_meta($post_ID, 'field-name', 'custom value', true); } }
Automatically add a hidden custom field and associating value to a post when the post is published
add_action('publish_page', 'add_custom_field_automatically'); add_action('publish_post', 'add_custom_field_automatically'); function add_custom_field_automatically($post_ID) { global $wpdb; if(!wp_is_post_revision($post_ID)) { add_post_meta($post_ID, 'field-name', 'custom value', true); } }
-
- 2011-12-17
Ajouter destypes demessagespersonnalisés à lapage d'archives
function namespace_add_custom_types( $query ) { if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) { $query->set( 'post_type', array( 'post', 'your-custom-post-type-here' )); return $query; } } add_filter( 'pre_get_posts', 'namespace_add_custom_types' );
Add custom post types to archives page
function namespace_add_custom_types( $query ) { if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) { $query->set( 'post_type', array( 'post', 'your-custom-post-type-here' )); return $query; } } add_filter( 'pre_get_posts', 'namespace_add_custom_types' );
-
- 2010-12-28
Appelerbloginfoen utilisant un shortcode ...
function digwp_bloginfo_shortcode($atts) { extract(shortcode_atts(array( 'key' => '', ), $atts)); return get_bloginfo($key); } add_shortcode('bloginfo', 'digwp_bloginfo_shortcode');
[bloginfo key='name']
Call bloginfo using shortcode...
function digwp_bloginfo_shortcode($atts) { extract(shortcode_atts(array( 'key' => '', ), $atts)); return get_bloginfo($key); } add_shortcode('bloginfo', 'digwp_bloginfo_shortcode');
Usage:
[bloginfo key='name']
-
Pouvez-vous ajouter quelquesexemples où celapourrait être utile?Can you add some examples of where this could be useful?
- 0
- 2020-02-01
- Peter Mortensen
Commebeaucoup d'autrespersonnes qui consultent actuellement cet article,j'ai lu diversblogs,forumset groupes de discussionpour apprendreet améliorermes compétences WordPress. Au cours des 12 derniersmois,j'aieupourmission de remplacermon utilisation despluginsen ajoutant du code àmonfichier
functions.php
à laplace.Bien queje soistout àfait d'accordpour dire que lesplugins sonttrès utiles dans denombreuses situations,monexpérience aprouvé que dans 90% des cas d'utilisation,bien qu'unpluginpuisseexister,son utilisationpourrait créer des complicationsinutileset desproblèmes de compatibilité. Deplus,dans denombreux cas,detelsplugins ont ajouté desmenuset d'autres éléments d'administration dontje ne veuxni n'aibesoin.
Leplus souvent,j'aitrouvé qu'en analysant le code desplugins,j'étais capable de retirer lemorceau de code queje voulaiset de le coderen dur dansmon
functions.php
. Celam'afourni lafonctionnalitéexacte dontj'avaisbesoin sans avoir àinclure d'élémentsinutiles.Donc,lebut de cet articleestmatentative de vousengager,le lecteur/administrateur/développeur,àpartager avecmoiet avec d'autresicitous lesbits de code que voustrouvez utileset que vous avez ajoutés à lafonction
function.php
pour étendre ou améliorer WordPress sans utiliser deplugin.Lorsque vous soumettez une réponseici,veuillez donner untitre à chaquebit de code,faites-nous savoir si avec quelle version de WordPress vous savez qu'ilest compatible,incluez la description que vousjugez lemieux décrivant safonctionet (le cas échéant)incluez un lien auplugin ou à la source d'origine où vous aveztrouvé lesinformations.
J'attends avecimpatiencetoutes vos réponseset j'ajouteraibien sûren permanencemesnouvelles découvertes chaquefois queje lestrouverai.
Veuillez voter sur la questionet toutes les réponses que vousjugez utilesen cliquant sur laflèche haut àgauche de la question ou de la réponse.