Notre société a mis en place un plugin Wordpress qui utilise notre API de contenu. Le problème, c'est qu'une partie du contenu s'en va. Parfois pour un temps, parfois pour toujours. Pour être sûr du point de vue juridique, nous devons faire en sorte que le contenu supprimé sur notre page doive également être supprimé du côté des utilisateurs du plug-in.
Pour ce faire, nous vérifions une tâche mensuelle avec un travail cron, puis définissons le contenu importé sur "brouillon" afin que le propriétaire du site ne perde pas le contenu qu'il aurait lui-même ajouté.
Il peut republier le contenu, mais c'est son problème s'il y a un problème juridique.
Quoi qu'il en soit: comment informer au mieux le propriétaire de la page que nous avons paramétré certaines de ses pages sur "brouillon"? J'ai consulté les avis de l'administrateur, mais ceux-ci semblent être principalement des messages courts et immédiats du type "Vos paramètres ont été enregistrés".
Quel est un bon moyen d'informer le propriétaire du site "D'accord, cela s'est passé pendant votre absence, vous devrez peut-être examiner la question"?
J'ai fait quelque chose de similaire en signalant des problèmes d'ingestion de contenu. Je vous déconseille d'envoyer des courriers électroniques à partir d'un cron, à moins que ce soit sous forme de résumé à partir d'un intervalle de temps spécifié, car vous risqueriez de fatiguer les courriers électroniques assez rapidement.
J'ai créé une file d'attente dans un type de publication distinct lié à la publication signalée ou juste levé un indicateur pour un problème sans publication. À partir de là, les éditeurs peuvent résoudre un problème (le supprimer) ou le marquer comme prévu (défini sur custom post_status of 'attendu') afin que le problème ne reste pas récurrent si des règles sont configurées pour intercepter d'autres publications de même problème.
Bien que je ne puisse pas vous donner le code pour le plugin propriétaire, voici les étapes que j'ai suivies:
1. Créer un type d'article pour les indicateurs de contenu
2. Redirige les nouvelles publications manuelles vers edit.php et supprime l'élément de sous-menu pour l'ajout de publications
Nous voulons seulement que cron crée ces publications et non les utilisateurs.
add_action( 'init', 'redirect_new_flag_post' );
function redirect_new_flag_post (){
global $pagenow;
if( $pagenow === 'post-new.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] === 'YOUR_POST_TYPE' ){
wp_redirect( '/wp/wp-admin/edit.php?post_type=YOUR_POST_TYPE' );
die();
}
}
add_action( 'admin_menu', 'remove_flag_menu_items' );
function remove_menu_items (){
remove_submenu_page( 'edit.php?post_type=YOUR_POST_TYPE', 'post-new.php?post_type=YOUR_POST_TYPE' );
}
3. Créez des colonnes personnalisées pour edit.php pour votre type d'article personnalisé. Jetez un coup d'œil à ce message pour plus d'informations.
4. Ajoutez des méta-boîtes à votre type de message personnalisé
Informations sur le poste marqué
Actions de résolution
5. Créer un avis d'administrateur sur le poste marqué
6. Créer une classe de modèle de drapeau
Vous pouvez créer une classe similaire à ceci:
class Flags{
public function add( $post_id, $title, $desc, $meta_data = array(), $flagger = 'cron' ){
// Deduplicate flag
// Insert flag
}
public function resolve( $post_id ){
// Delete post via ID
}
public function save( $post_id ){
// Set post_status to 'expected'
}
public function clear_saved( $post_id ){
self::resolve( $post_id );
}
}
7. Signaler le contenu de votre script cron
Dans votre script, vous pouvez définir une structure de contrôle pour identifier les publications qui doivent être marquées (c’est-à-dire que la publication n’a pas été insérée correctement, que du contenu est absent du CMS d'origine, etc.). Ces publications doivent être signalées à l'aide de votre classe Flag:
Flags::add(
$post_id,
'Lorem Ipsum',
'This is why this post is getting flagged',
array( 'raw_data' => $content_object )
);
8. Créer un résumé de courrier électronique
Je créerais un script cron distinct pour interroger les derniers indicateurs de contenu et envoyer un résumé à l'administrateur à intervalles réguliers. Il serait utile pour l'administrateur de recevoir un lien vers le problème, de consulter les données brutes et de pouvoir résoudre le problème manuellement plutôt que d'essayer de déboguer sans données.
9. Collecte des ordures
Cette approche a fonctionné à notre guise, mais les indicateurs de contenu "Attention" peuvent s’empiler rapidement si vous importez beaucoup de données. Vous devrez exécuter un script de récupération de place pour les anciens indicateurs si vous constatez que votre administrateur ne résout pas les problèmes. Vous devrez peut-être également identifier des modèles de règles trop strictes pour l'ajout d'indicateurs de contenu s'ils sont systématiquement ignorés.