Archives février 2020
#
Customisation de Wordpress
Wordpress offre une API permettant d'ajouter facilement des boutons dans l'éditeur, la Quicktags_API.
Il est donc facile de rajouter un bouton avec un appel du type :
QTags.addButton( id, display, arg1, arg2, access_key, title, priority, instance );
On peut ajouter dans le fichier functions.php du thème des appels de fonction du type (exemple avec un ajout de bouton pour le plugin Piwigo :
// Add Quicktags function piwitag() { if ( wp_script_is( 'quicktags' ) ) { ?> <script type="text/javascript"> QTags.addButton( 'piwitag', 'Piwitag', '[PiwigoPress id=xxx url="PIWIGO_URL" size="me" class="img-shadow"]', '', 'Piwitag', '', 'piwitag', ); </script> <?php } } add_action( 'admin_print_footer_scripts', 'piwitag' );
J'en profite pour noter la fonction pour déclencher une commande à la publication d'un post (dans mon cas, publication sur une room Matrix):
function published_send_notif( $post_id ){ // If this is just a revision, don't send the email. if ( wp_is_post_revision( $post_id ) ) return; //if( get_post( $post_id ) == null ) { $post_title = get_the_title( $post_id ); $post_url = get_permalink( $post_id ); $subject = 'Nouveau post'; $message = "Nouveau post:/n /n"; $message .= $post_title . ": " . $post_url; // Send notification in Matrix room. $command = ""; exec(escapeshellcmd($command) . " " . escapeshellarg($post_title) . " " . escapeshellarg($post_url)); // } } add_action( 'publish_post', 'published_send_notif' );
#
Rendre un thème Wordpress responsive
Pour qu'un thème Wordpress soit responsive, il faut éviter que les tailles ne soit définies en dur : au lieu de :
#content{ width:700px; }
préferer :
#content{ max-width: 700px; width: 100%; }
On peut également inclure des requêtes média, pour modifier l'affichage selon la taille de l'écran. Exemple pour blog.linuxine.net :
/*Responsive media queries*/ @media screen and ( max-width: 800px ) { #header { width: 100%; } #logos { clear: both; display: block; float: left; margin-left: 20px width: 100%; } #social_icons { display:none; } #content { clear: both; display: block; width: 100%; } #sidebar{ display:none; } }
/! Ne pas oublier d'inclure dans le header
Sinon les media queries ne sont pas executées ; le initial-scale est indispensable pour un affichage correct sous Opera mobile.
#
Mémo sur les xpath
Lien contenant une classe :
//a[@class='classe_exacte'] //a[contains(@class,'select2-choice')]
Div contenant du texte :
//div[text()="Collection"] //div[contains(text(),'collection')]
Classe et texte :
xpath="//div[@class='alert alert-danger alert-dismissable']/ul/li[contains(text(),'collection: collection is required')]
Trouver une balise
//*[local-name='circle']
Trouver le parent :
//div[@id=1]/parent::*
Deux conditions combinées, pour trouver ce lien :
A //a[@data-event='scenario:view' and contains(text(),'A')]
Le 3e td apres ce lui, qui contient le texte "editing"
//td/a[@data-event='scenario:view' and contains(text(),'A')]/../following-sibling::td[3][contains(text(),'Editing')]
#
iotop
Une petite commande bien pratique pour savoir quels process utilisent des I/O : iotop ! Avec l’option -o, il n’affiche que ceux utilisant effectivement des I/O. Et l’option -a permet d’avoir un cumul depuis le lancement de la commande, ce qui évite que les process disparaissent et réapparaissent super rapidement s’ils font des I/O par intermittence.
# iotop -a -o Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 7.75 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1436 be/3 root 0.00 B 160.00 K 0.00 % 0.46 % [jbd2/dm-9-8] 2903 be/4 root 0.00 B 8.00 K 0.00 % 0.00 % nmbd -D 2219 be/4 root 0.00 B 4.00 K 0.00 % 0.00 % rsyslogd ~ain Q:Reg] 4376 be/4 aline 0.00 B 8.00 K 0.00 % 0.00 % psi-plus 8865 be/4 aline 0.00 B 4.00 K 0.00 % 0.00 % iceweasel~ache2 I/O] 8884 be/4 aline 0.00 B 504.00 K 0.00 % 0.00 % iceweasel~torage #1] 8890 be/4 aline 0.00 B 120.00 K 0.00 % 0.00 % iceweasel~OM Worker] 1295 be/4 aline 0.00 B 8.00 K 0.00 % 0.00 % iceweasel~ache2 I/O]