You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Be explicit for no results when using wp transient list and external object cache #61
When using an external object cache, transients are stored in the object cache and not in the database.
wp transient get ... will still work correctly, as it wraps the get_transient() or get_site_transient() functions.
However, wp transient list will always return an empty table, as the handler for the WP-CLI command generates some SQL to explicitly look in the options or sitemeta tables, which will be empty of transients.
Could we have an early guard clause for the list() method that reminds users that transients are stored in the object cache and so can't be displayed, if the object cache is being used?
(At least until WP core has get_transients() function that can be wrapped.)
The wp transient list command should indeed show a message that object cache is in use, at the very least. The expected behavior is to get the cached transients as stated in Transient_Command.php#L15. It would be important to wrap object cache.
This was a real head-scratcher when I encountered it today. If you're using Redis (for example) you can do something like KEYS XXX:transient:*, where XXX is the site id, to get all the transients, but that's not cross-platform and there doesn't seem to be a core function for getting object cache keys.
Activity
[-]Be explicit for not results when using wp transient list and external object cache[/-]sjaks commentedon Jul 24, 2020
The
wp transient listcommand should indeed show a message that object cache is in use, at the very least. The expected behavior is to get the cached transients as stated in Transient_Command.php#L15. It would be important to wrap object cache.mackensen commentedon Aug 9, 2021
This was a real head-scratcher when I encountered it today. If you're using Redis (for example) you can do something like
KEYS XXX:transient:*, where XXX is the site id, to get all the transients, but that's not cross-platform and there doesn't seem to be a core function for getting object cache keys.GaryJones commentedon Jun 5, 2022
Adding a guard clause of
wp_using_ext_object_cache()at the start of https://github.com/wp-cli/cache-command/blob/main/src/Transient_Command.php#L76 may be sufficient.danielbachhuber commentedon Feb 16, 2023
@GaryJones Want to submit a pull request for what you might suggest?
GaryJones commentedon Feb 21, 2023
@danielbachhuber It's not something I'm going to get around to anytime soon, so please go ahead :-)
danielbachhuber commentedon Feb 24, 2023
#82