The privacy_ping_filter() WordPress PHP function checks whether a blog is public before returning sites.
Usage
$sites = privacy_ping_filter($sites);
Parameters
$sites
(mixed) – Required. The list of sites that will be filtered based on their public status.
More information
See WordPress Developer Resources: privacy_ping_filter()
Examples
Filter a list of sites
This example filters a list of sites and only returns public ones.
// An array of site IDs $site_ids = array(1, 2, 3, 4, 5); // Get site objects $sites = array_map('get_site', $site_ids); // Filter sites to only include public ones $public_sites = privacy_ping_filter($sites); // Display public site IDs foreach ($public_sites as $site) { echo "Public site ID: " . $site->blog_id . "<br />"; }
Check if a single site is public
This example checks if a specific site is public.
$site_id = 2; $site = get_site($site_id); if (privacy_ping_filter(array($site))) { echo "The site is public."; } else { echo "The site is not public."; }
Filter sites using the ‘get_sites’ function
This example filters sites using the ‘get_sites’ function and the ‘privacy_ping_filter’ function.
$args = array( 'number' => 10, 'orderby' => 'registered' ); $sites = get_sites($args); $public_sites = privacy_ping_filter($sites); foreach ($public_sites as $site) { echo "Public site: " . $site->blogname . "<br />"; }
Filter sites by custom attribute and public status
This example filters sites by a custom attribute and their public status.
// Custom function to filter sites by a custom attribute function filter_sites_by_custom_attribute($sites) { $filtered_sites = array(); foreach ($sites as $site) { if ($site->custom_attribute === "example_value") { $filtered_sites[] = $site; } } return $filtered_sites; } $sites = get_sites(); $filtered_sites = filter_sites_by_custom_attribute($sites); $public_filtered_sites = privacy_ping_filter($filtered_sites); foreach ($public_filtered_sites as $site) { echo "Public site with custom attribute: " . $site->blogname . "<br />"; }
Display public sites in a dropdown menu
This example displays public sites in a dropdown menu using the ‘wp_dropdown_sites’ function and the ‘privacy_ping_filter’ function.
$args = array( 'id' => 'public_sites', 'name' => 'public_sites', 'selected' => 0 ); $sites = get_sites(); $public_sites = privacy_ping_filter($sites); // Custom function to build the dropdown menu function build_public_sites_dropdown($public_sites, $args) { $output = "<select id='{$args['id']}' name='{$args['name']}'>"; $output .= "<option value=''>Select a public site</option>"; foreach ($public_sites as $site) { $selected = $args['selected'] == $site->blog_id ? " selected='selected'" : ''; $output .= "<option value='{$site->blog_id}'{$selected}>{$site->