<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" 
	>
<channel>
	<title>
	Comments on: LH Shadow Taxonomies	</title>
	<atom:link href="https://lhero.org/portfolio/lh-shadow-taxonomies/feed/" rel="self" type="application/rss+xml" />
	<link>https://lhero.org/portfolio/lh-shadow-taxonomies/</link>
	<description>Digital Sovereignty for everyone</description>
	<lastBuildDate>Sat, 31 Oct 2026 04:36:29 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-shadow-taxonomies/#comment-1537791</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 04:36:29 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=152900#comment-1537791</guid>

					<description><![CDATA[Fixes the group backfill introduced in 1.15.0, which read the BuddyPress groups table directly and so ignored plugins that limit groups to the current site; on a multisite network it would have created shadow terms on one site for groups belonging to another. Groups are fetched through groups_get_groups() again, with the already-shadowed group IDs passed as an exclusion list (bounded by the number of groups on the site); users and posts keep the single-query backfill. Also stops a PHP notice in the Shadow column when a taxonomy has no shadow setting.]]></description>
			<content:encoded><![CDATA[<p>Fixes the group backfill introduced in 1.15.0, which read the BuddyPress groups table directly and so ignored plugins that limit groups to the current site; on a multisite network it would have created shadow terms on one site for groups belonging to another. Groups are fetched through groups_get_groups() again, with the already-shadowed group IDs passed as an exclusion list (bounded by the number of groups on the site); users and posts keep the single-query backfill. Also stops a PHP notice in the Shadow column when a taxonomy has no shadow setting.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-shadow-taxonomies/#comment-1537790</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 04:31:25 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=152900#comment-1537790</guid>

					<description><![CDATA[Rewrites the backfill that finds objects still needing a shadow term so it scales with large sites. Previously each daily run loaded the ID of every already-shadowed object into PHP and passed them back as an exclusion list, so the query grew with the number of shadowed objects. Each backfill is now one prepared query per type that checks for an existing shadow term inside the database, so it stays the same size however many objects are shadowed. Users, BuddyPress groups (hidden groups included) and posts in the active statuses are covered as before; on multisite, users are still limited to members of the current site. The blacklist filter is still honoured. The internal get_excluded_ids_by_taxonomy() helper is removed, and get_unshadowed_groups_by_taxonomy() now returns group IDs rather than group objects.]]></description>
			<content:encoded><![CDATA[<p>Rewrites the backfill that finds objects still needing a shadow term so it scales with large sites. Previously each daily run loaded the ID of every already-shadowed object into PHP and passed them back as an exclusion list, so the query grew with the number of shadowed objects. Each backfill is now one prepared query per type that checks for an existing shadow term inside the database, so it stays the same size however many objects are shadowed. Users, BuddyPress groups (hidden groups included) and posts in the active statuses are covered as before; on multisite, users are still limited to members of the current site. The blacklist filter is still honoured. The internal get_excluded_ids_by_taxonomy() helper is removed, and get_unshadowed_groups_by_taxonomy() now returns group IDs rather than group objects.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
