Je lance un site Wordpress multi-auteurs avec des milliers de posts. Pour mettre en évidence les bons messages, je les filtre par des balises spécifiques que seuls les administrateurs peuvent définir. Par exemple featured
, front page
etc.Limiter les utilisateurs à l'utilisation de tags spécifiques avec une technique qui n'efface pas la balise
Pour éviter que mes auteurs ne sélectionnent eux-mêmes ces tags, j'utilise le script suivant. Si l'utilisateur a sélectionné un tag interdit, il sera supprimé une fois qu'il aura cliqué sur le bouton Publier. Les commentaires sont pour plus de commodité:
add_action('save_post', 'remove_tags_function', 10, 1); //whenever a post is saved, run the below function
function remove_tags_function($post_id){
if(!current_user_can('manage_options')){ // if the logged in user cannot manage options (only admin can)
$post_tags = wp_get_post_terms($post_id, 'post_tag', array('fields'=>'names')); //grab all assigned post tags
$pos = array_search('tag-to-be-deleted', $post_tags); //check for the prohibited tag
if(false !== $pos) { //if found
unset($post_tags[$pos]); //unset the tag
wp_set_post_terms ($post_id, $post_tags, 'post_tag'); //override the posts tags with all prior tags, excluding the tag we just unset
}
}//end if. If the current user CAN manage options, the above lines will be skipped, and the tag will remain
}
Il y a un problème majeur avec cette solution. Une fois la publication publiée, un administrateur lui attribue une balise featured
. Toutefois, si l'auteur d'origine met à jour son post, le tag disparaît. Comprenez-vous le problème?
De nombreux auteurs aiment effectuer des révisions à leurs publications, en particulier lorsqu'ils reçoivent des commentaires dans les commentaires, et il existe également le type de publications liées aux actualités, qui nécessite une mise à jour fréquente.
Quelle solution pouvez-vous proposer pour résoudre ce scénario? Les administrateurs devront être en mesure de donner la balise sélectionnée, et si l'auteur met à jour son message, le tag doit rester. Quel puzzle ...
Intéressant. Comment fonctionnerait le filtrage? Par exemple, actuellement, je peux facilement filtrer les messages en ajoutant ** & tag = random_tag ** à l'URL. Une approche similaire fonctionnerait-elle si j'utilisais une taxonomie personnalisée? –
@GaryWoods Désolé je n'ai pas été clair dans ma réponse (j'ai ajouté des précisions). Je voulais juste dire ne pas utiliser de tags pour vos propriétés d'administration. Votre système de tag resterait toujours le même. Faites votre "vedette", "première page", etc. en taxonomies. –
juste pour clarifier, comment cela fonctionnerait-il si je faisais ** vedette ** dans une taxonomie personnalisée? Comment puis-je lister tous les articles qui ont été sélectionnés pour être affichés? Cela fonctionnerait-il en ajoutant à l'URL? Par exemple, je filtre actuellement en vedette en ajoutant & tag = vedette à l'URL. –