public function get_query_args() {
		$args = $this->args;

		if ( empty( $args['meta_query'] ) ) {
			// Add new meta key/value if `meta_key` or `meta_value` is empty.
			if ( empty( $args['meta_key'] ) || empty( $args['meta_value'] ) ) {
				$args['meta_key']   = papi_get_page_type_key();
				$args['meta_value'] = $args['entry_type'];
			} else if ( papi_entry_type_exists( $args['entry_type'] ) ) {
				$item = [
					'key'   => $args['meta_key'],
					'value' => $args['meta_value']
				];

				// Add `meta_compare` if set.
				if ( isset( $args['meta_compare'] ) ) {
					$item['compare'] = $args['meta_compare'];

					unset( $args['meta_compare'] );
				}

				// Add new meta query item.
				$args['meta_query'][] = $item;

				// Add Papi entry/page type meta query.
				$args['meta_query'][] = [
					'key'   => papi_get_page_type_key(),
					'value' => $args['entry_type']
				];

				// Add meta query relation when two query items.
				if ( isset( $args['relation'] ) ) {
					$args['meta_query']['relation'] = $args['relation'];
				} else {
					$args['meta_query']['relation'] = 'AND';
				}

				unset( $args['meta_key'] );
				unset( $args['meta_value'] );
			}
		} else if ( papi_entry_type_exists( $args['entry_type'] ) ) {
			// Add Papi entry/page type meta query.
			$args['meta_query'][] = [
				'key'   => papi_get_page_type_key(),
				'value' => $args['entry_type']
			];

			// Add meta query relation if not set.
			if ( ! isset( $args['meta_query']['relation'] ) ) {
				$args['meta_query']['relation'] = 'AND';
			}
		}

		// Since the real query classes don't support
		// custom arguments the should be deleted.
		foreach ( array_keys( $this->default_args ) as $key ) {
			if ( isset( $args[$key] ) ) {
				unset( $args[$key] );
			}
		}

		return $args;
	}