Après une très longue absence je reviens aux sources et redécouvre les joies du codage sous WordPress (sic!), ceci afin de créer à nouveau un thème à partir de zéro (mon dernier thème fonctionne toujours très bien mais commence à dater). Après près de 5 ans d'absence durant lesquelles j'ai découverts avec passion Node.js, j'avais oublié que coder sous WordPress était aussi rebutant...
En effet, WordPress continue d'ajouter de nouvelles fioritures qu'il active par défaut sur une MAJ. De fait je passe des soirées à dénicher ces fonctions, pour chercher ensuite des incantations php glanées ça et là sur internet dans le but de les désactiver (passionnant). Parce que oui, tous ces trucs peuvent être très bien en eux-même, mais le problème est qu'ils sont activés par défaut :
1. Les images attachées à un article ont leur page dédiée . Comment on désactive déjà ? Ah oui : il faut rajouter un fichier image.php , avec devant quelque chose comme ceci :
2. Les emojis. Le code source est immonde, tout cela pour mettre une emoji dans un article (enfin peut-être). Une option à passer à false ? Ah bah non ! on a bien plus intuitif :
3. Gutenberg, symbole de l'orientation qu'est en train de prendre le CMS. Enfin un truc pas trop dur à désactiver :
4. Enfin et surtout : l'API REST avec laquelle j'ai le plaisir de voir mes données exposées à mon insu (exemple avec ce site). Si vous êtes encore en versions 4.7.0 ou 4.7.1 n’importe qui peut modifier vos données sans avoir à s’authentifier (il y a eu un patch à partir de 4.7.2). Bravo WordPress. Sur ce point j'ai trouvé des incantations glannées sur internet, mais elles n'ont pas "marché" pour moi. On verra pour une redirection apache au pire, mais c'est dingue où on en arrive pour configurer ce truc. (Edit : une solution ici).
Je n'aime pas du tout le chemin que prends WordPress mais il reste incontournable. Il va falloir que je m'y fasse...
Modifié par Olivier C (22 Aug 2022 - 14:52)
En effet, WordPress continue d'ajouter de nouvelles fioritures qu'il active par défaut sur une MAJ. De fait je passe des soirées à dénicher ces fonctions, pour chercher ensuite des incantations php glanées ça et là sur internet dans le but de les désactiver (passionnant). Parce que oui, tous ces trucs peuvent être très bien en eux-même, mais le problème est qu'ils sont activés par défaut :
1. Les images attachées à un article ont leur page dédiée . Comment on désactive déjà ? Ah oui : il faut rajouter un fichier image.php , avec devant quelque chose comme ceci :
// @note Depuis WordPress 3.5 une page est créé par défaut pour chaque média uploadé. Cette option est très discutable...
// @description Supprimer la page du fichier joint
// @link https://gist.github.com/reficedev/c5d0451124c74f0afc67c127ccaa582f#file-wordpress-supprimer-page-du-fichier-attache
global $post;
if ($post AND $post->post_parent) {
wp_redirect(get_permalink($post->post_parent), 301); // Redirection sur la page de l'article à l'origine de l'upload
} else {
wp_redirect(home_url('/'), 301); // Sur la page d'accueil le cas échéant
}
exit;
2. Les emojis. Le code source est immonde, tout cela pour mettre une emoji dans un article (enfin peut-être). Une option à passer à false ? Ah bah non ! on a bien plus intuitif :
function draftDisableEmojis() {
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_styles', 'print_emoji_styles');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
add_filter('tiny_mce_plugins', 'disable_emojis_tinymce');
//add_filter('wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2); // chez moi ça bug...
}
add_action('init', 'draftDisableEmojis');
3. Gutenberg, symbole de l'orientation qu'est en train de prendre le CMS. Enfin un truc pas trop dur à désactiver :
// Désactiver Gutenberg pour le back end
add_filter('use_block_editor_for_post', '__return_false');
4. Enfin et surtout : l'API REST avec laquelle j'ai le plaisir de voir mes données exposées à mon insu (exemple avec ce site). Si vous êtes encore en versions 4.7.0 ou 4.7.1 n’importe qui peut modifier vos données sans avoir à s’authentifier (il y a eu un patch à partir de 4.7.2). Bravo WordPress. Sur ce point j'ai trouvé des incantations glannées sur internet, mais elles n'ont pas "marché" pour moi. On verra pour une redirection apache au pire, mais c'est dingue où on en arrive pour configurer ce truc. (Edit : une solution ici).
Je n'aime pas du tout le chemin que prends WordPress mais il reste incontournable. Il va falloir que je m'y fasse...
Modifié par Olivier C (22 Aug 2022 - 14:52)