Skip to content

Instantly share code, notes, and snippets.

@jasonbahl
Created March 9, 2023 23:00

Revisions

  1. jasonbahl created this gist Mar 9, 2023.
    27 changes: 27 additions & 0 deletions overriding-connection-resolver.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    add_filter( 'graphql_pre_resolve_field', function( $default, $source, $args, $context, $info, $type_name, $field_key, $field, $field_resolver ) {

    // if the field is not the 'tags' field, and the
    if ( ! ( 'tags' === $field_key && 'post' === strtolower( $type_name ) ) ) {
    return $default;
    }

    $empty = [
    'edges' => [],
    'nodes' => [],
    ];

    if ( $source instanceof \WPGraphQL\Model\Post && 'revision' === $source->post_type ) {

    $terms = wp_get_object_terms( $source->databaseId, 'post_tag' );
    if ( empty( $terms ) ) {
    return $empty;
    }
    $term_ids = wp_list_pluck( $terms, 'term_id' );
    $resolver = new \WPGraphQL\Data\Connection\TermObjectConnectionResolver( $source, $args, $context, $info );
    $resolver->set_query_arg( 'include', $term_ids );
    return $resolver->get_connection();
    }

    return $empty;

    }, 10, 9 );