'APBlock', 'title' => 'Advanced Post Block', ] ], $categories ); } // Categories function onLoaded(){ wp_register_style( 'ap-block-posts-editor-style', plugins_url( 'dist/editor.css', __FILE__ ), [ 'wp-edit-blocks' ], AP_BLOCK_PLUGIN_VERSION ); // Backend Style wp_register_style( 'ap-block-posts-style', plugins_url( 'dist/style.css', __FILE__ ), [ 'wp-editor', 'dashicons' ], AP_BLOCK_PLUGIN_VERSION ); // Frontend Style register_block_type( __DIR__, [ 'editor_style' => 'ap-block-posts-editor-style', 'style' => 'ap-block-posts-style', 'render_callback' => [$this, 'render'] ] ); // Register Block wp_set_script_translations( 'ap-block-posts-editor-script', 'advanced-post-block', plugin_dir_path( __FILE__ ) . 'languages' ); // Translate } // Register function render( $attributes ) { extract( $attributes ); $className = $className ?? ''; $apbBlockClassName = 'wp-block-ap-block-posts apbAdvancedPosts ' . $className . ' align' . $align; // All Posts $defaultPostFilter = 'post' === $postType ? [ 'category__in' => $selectedCategories ] : []; $posts = get_posts( array_merge( [ 'post_type' => $postType, 'posts_per_page' => $isPostsPerPageAll ? -1 : $postsPerPage, 'orderby' => $postsOrderBy, 'order' => $postsOrder ], $defaultPostFilter ) ); ob_start(); ?>
columns-tablet- columns-mobile-'> foreachPosts( $attributes, $posts ); ?>
cols-tablet- cols-mobile-'> foreachPosts( $attributes, $posts ); ?>
foreachPosts( $attributes, $posts ); ?>
" : ''; ?>
" : ''; ?>
foreachPosts( $attributes, $posts ); ?>
defaultLayout( $attributes, $post ); } else if ( 'left-image' === $subLayout || 'right-image' === $subLayout ) { echo $this->sideImgLayout( $attributes, $post ); } else if ( 'overlay-content' === $subLayout || 'overlay-content-hover' === $subLayout || 'overlay-box' === $subLayout ) { echo $this->overlayLayout( $attributes, $post ); } else { ?>

postExcerpt( $attributes, $post ) . $this->postReadMore( $attributes, $post ) : ''; ob_start(); ?>
'> postFeatureImg( $attributes, $post ); ?>
postTitle( $attributes, $post ) . $this->postMetaData( $attributes, $post ) . $titleMetaFilter; ?>
'> postFeatureImg( $attributes, $post ) : ''; ?>
postTitle( $attributes, $post ) . $this->postMetaData( $attributes, $post ) . $this->postExcerpt( $attributes, $post ) . $this->postReadMore( $attributes, $post ); ?>
postFeatureImg( $attributes, $post ) : ''; ?>
ID ); ob_start(); ?>
'>
postTitle( $attributes, $post ) . $this->postMetaData( $attributes, $post ); ?> postExcerpt( $attributes, $post ) . $this->postReadMore( $attributes, $post ) : ''; ?>
ID ); $tab = $isLinkNewTab ? '_blank' : '_self'; if( $isFImg && $imgUrl ){ ob_start(); ?>
" : ''; ?> ". get_the_category_list( ' ', '', $post->ID ) ."" : ''; ?>

$post->post_title" : $post->post_title; ?>

metaAuthor( $attributes, $post ) . $this->metaDate( $attributes, $post ) . $this->metaCategories( $attributes, $post ) . $this->metaComment( $attributes, $post ); ?>
    ID ); ?>   ID ); ?>   ID )->total_comments; ?>
ID ), [] ) ), 0, $excerptLength ) ); ?>
true, 'show_in_rest' => true, ], 'objects' ); $options = []; foreach ( $post_types as $post_type ) { if ( 'product' === $post_type->name ) { continue; } if ( 'attachment' === $post_type->name ) { continue; } if ( 'page' === $post_type->name ) { continue; } $options[] = [ 'value' => $post_type->name, 'label' => $post_type->label ]; } return $options; } // Post Types function customRestAPI() { $post_type = $this->post_types(); foreach ( $post_type as $key => $value ) { register_rest_field( $value['value'], 'wbAuthor', [ 'get_callback' => function ( $obj ) { $author['name'] = get_the_author_meta( 'display_name', isset( $obj['author'] ) ? $obj['author'] : '' ); $author['link'] = get_author_posts_url( isset( $obj['author'] ) ? $obj['author'] : '' ); return $author; }, 'schema' => [ 'description' => __( 'Author name and link', 'advanced-post-block' ), 'type' => 'string' ] ] ); register_rest_field( $value['value'], 'wbDate', [ 'get_callback' => function ( $obj ) { return get_the_date( 'M j, Y', $obj['id'] ); }, 'schema' => [ 'description' => __( 'Author name and link', 'advanced-post-block' ), 'type' => 'string' ] ] ); register_rest_field( $value['value'], 'wbCategories', [ 'get_callback' => function ( $obj ) { $catsLink['space'] = get_the_category_list( esc_html__( ' ' ), '', $obj['id'] ); $catsLink['coma'] = get_the_category_list( esc_html__( ', ' ), '', $obj['id'] ); return $catsLink; }, 'schema' => [ 'description' => __( 'Category link lists', 'advanced-post-block' ), 'type' => 'string' ] ] ); register_rest_field( $value['value'], 'wbComment', [ 'get_callback' => function ( $obj ) { return wp_count_comments( $obj['id'] )->total_comments; }, 'schema' => [ 'description' => __( 'Comment', 'advanced-post-block' ), 'type' => 'number' ] ] ); } } // Custom rest function excerptMore( $more ) { return "

". __( 'Read More »', 'b-blocks' ) ."

"; } // Excerpt More } new APBAdvancedPostBlock;