src/class-extended-cpt.php
public function register_post_type() {

		if ( ! isset( $this->args['query_var'] ) || ( true === $this->args['query_var'] ) ) {
			$query_var = $this->post_type;
		} else {
			$query_var = $this->args['query_var'];
		}

		$existing = get_post_type_object( $this->post_type );
		$taxonomies = get_taxonomies( [
			'query_var' => $query_var,
		], 'objects' );

		if ( $query_var && count( $taxonomies ) ) {
			// https://core.trac.wordpress.org/ticket/35089
			foreach ( $taxonomies as $tax ) {
				if ( $tax->query_var === $query_var ) {
					trigger_error( esc_html( sprintf(
						/* translators: %s: Post type query variable name */
						__( 'Post type query var "%s" clashes with a taxonomy query var of the same name', 'extended-cpts' ),
						$query_var
					) ), E_USER_ERROR );
				}
			}
		}

		if ( empty( $existing ) ) {

			$cpt = register_post_type( $this->post_type, $this->args );

			if ( is_wp_error( $cpt ) ) {
				trigger_error( esc_html( $cpt->get_error_message() ), E_USER_ERROR );
			}
		} else {

			# This allows us to call `register_extended_post_type()` on an existing post type to add custom functionality
			# to the post type.
			$this->extend( $existing );

		}

	}
public function register_post_type() {

		if ( ! isset( $this->args['query_var'] ) || ( true === $this->args['query_var'] ) ) {
			$query_var = $this->post_type;
		} else {
			$query_var = $this->args['query_var'];
		}

		$existing = get_post_type_object( $this->post_type );
		$taxonomies = get_taxonomies( [
			'query_var' => $query_var,
		], 'objects' );

		if ( $query_var && count( $taxonomies ) ) {
			// https://core.trac.wordpress.org/ticket/35089
			foreach ( $taxonomies as $tax ) {
				if ( $tax->query_var === $query_var ) {
					trigger_error( esc_html( sprintf(
						/* translators: %s: Post type query variable name */
						__( 'Post type query var "%s" clashes with a taxonomy query var of the same name', 'extended-cpts' ),
						$query_var
					) ), E_USER_ERROR );
				}
			}
		}

		if ( empty( $existing ) ) {

			$cpt = register_post_type( $this->post_type, $this->args );

			if ( is_wp_error( $cpt ) ) {
				trigger_error( esc_html( $cpt->get_error_message() ), E_USER_ERROR );
			}
		} else {

			# This allows us to call `register_extended_post_type()` on an existing post type to add custom functionality
			# to the post type.
			$this->extend( $existing );

		}

	}
public function register_post_type ( ) { if ( ! isset ( $ this -> args [ 'query_var' ] ) || ( true === $ this -> args [ 'query_var' ] ) ) { $ query_var = $ this -> post_type ; } else { $ query_var = $ this -> args [ 'query_var' ] ; } $ existing = get_post_type_object ( $ this -> post_type ) ; $ taxonomies = get_taxonomies ( [ 'query_var' => $ query_var , ] , 'objects' ) ; if ( $ query_var && count ( $ taxonomies ) ) { // https://core.trac.wordpress.org/ticket/35089 foreach ( $ taxonomies as $ tax ) { if ( $ tax -> query_var === $ query_var ) { trigger_error ( esc_html ( sprintf ( /* translators: %s: Post type query variable name */ __ ( 'Post type query var "%s" clashes with a taxonomy query var of the same name' , 'extended-cpts' ) , $ query_var ) ) , E_USER_ERROR ) ; } } } if ( empty ( $ existing ) ) { $ cpt = register_post_type ( $ this -> post_type , $ this -> args ) ; if ( is_wp_error ( $ cpt ) ) { trigger_error ( esc_html ( $ cpt -> get_error_message ( ) ) , E_USER_ERROR ) ; } } else { # This allows us to call `register_extended_post_type()` on an existing post type to add custom functionality # to the post type. $ this -> extend ( $ existing ) ; } }
Registers our post type.

The only difference between this and regular `register_post_type()` calls is this will trigger an error of
`E_USER_ERROR` level if a `WP_Error` is returned.
Registers our post type .