We are running SDL Web 8.5 and DXA 2 (Java). We have a number of publishable Categories. Many times there are situations where more than 1 Keyword in the same Category is updated and published on Staging, however not all changes are approved for Production at the same time. Since there is no way of publishing individual Keywords, what is suggested in such cases to get the approved Keyword published to Production without also publishing the still approval pending Keyword?
You have already pointed out that it's impossible to publish individual Keywords and you are correct. What you publish is a Category which in turn "publishes" all its keywords. Since there is no templating involved when publishing Categories, the output of the publish action is purely defined by a default taxonomy renderer
Tridion.ContentManager.Publishing.Rendering.TaxonomyRenderer configured in the
So, the only thing that comes to mind is writing your own (taxonomy) Renderer and using it to change the values for the relevant keywords. There are some challenges however, for starters, since Keywords (still) don't have versioning, you would need to think of a mechanism for supplying the old values, etc.
Updated the answer according to Ricks comment, thanks Rick :). Indeed, the default renderer should not be removed, but rather a new one should be added to the chain of renderers.
In 2013 SP1 Renderers are not type specific, they fire for every publish which means that you will need to check the type of the
ResolvedItem. But, looking at the 8.5 documentation I can see that this appears to have changed (see below).
There are examples of custom renderers available out there so you should have no trouble. A couple of useful links: