\WP_Stager_Integration\Event::get_event_post_ids(): array

Description

Gets all event post IDs, keyed by their Stager event IDs (integers).

Returns:

array An associative array of post IDs (integers), keyed by their Stager event IDs (integers).

Information

Fileclass-event.php line 689

Full Code

/**
 * Gets all event post IDs, keyed by their Stager event IDs (integers).
 *
 * @return array    An associative array of post IDs (integers), keyed by their Stager event IDs (integers).
 */
public static function get_event_post_ids() {

    // Get data
    global $wpdb;
    $post_type = self::CPT_SLUG;
    $meta_key  = self::get_meta_key( 'id' );

    // Query DB
    $results = $wpdb->get_results( $wpdb->prepare(
                    "SELECT p.ID, pm.meta_value
                    FROM $wpdb->posts p
                    LEFT JOIN $wpdb->postmeta pm
                           ON p.ID = pm.post_id
                          AND pm.meta_key = %s
                    WHERE p.post_type = %s
                      AND p.post_status != 'trash'",
                    $meta_key,
                    $post_type
            ), ARRAY_A );

    // Init
    $formatted = array();

    // Format into array( 'ID' => ..., 'your_meta_key' => ... )
    foreach ( $results as $row ) {

        // Get data
        $post_id  = (int) ($row[ 'ID' ] ?? 0);
        $event_id = (int) ($row[ 'meta_value' ] ?? null);

        // Delete post if no event ID stored
        if ( ! $event_id ) {
            wp_delete_post( $post_id, true );
            continue;
        }

        $formatted[ $event_id ] = $post_id;
    }

    return $formatted;
}

💡 If you ever get stuck or have a question, please check our FAQs, our Free Integration Service, our paid Full Integration Service, or reach out to us!

Get WP Stager Integration

🎁 Limited offer: Use code WELCOME26 to get your first month for free!