Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
gp-premium
/
inc
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * The class to integrate adjacent post dynamic tags. * * @package GeneratePress/Extend/DynamicTags */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * GeneratePress Pro adjacted post dynamic tags. * * @since 1.4.0 */ class GeneratePress_Pro_Dynamic_Tags_Adjacent_Posts extends GeneratePress_Pro_Singleton { /** * Init. */ public function init() { add_action( 'init', array( $this, 'setup' ) ); } public function setup() { // Bail out if GenerateBlocks Pro is active. if ( class_exists( 'GenerateBlocks_Pro_Dynamic_Tags_Adjacent_Posts' ) ) { return; } add_filter( 'generateblocks_dynamic_tag_id', array( $this, 'set_adjacent_post_ids' ), 10, 2 ); add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_scripts' ) ); } public function enqueue_scripts() { $editor_assets = generate_premium_get_enqueue_assets( 'adjacent-posts' ); wp_enqueue_script( 'generatepress-pro-adjacent-posts', GP_PREMIUM_DIR_URL . 'dist/adjacent-posts.js', $editor_assets['dependencies'], $editor_assets['version'], true ); } /** * Set adjacent post ids. * * @param int $id The post id. * @param array $options The options. */ public function set_adjacent_post_ids( $id, $options ) { $source = $options['source'] ?? ''; if ( 'next-post' === $source ) { $in_same_term = $options['inSameTerm'] ?? false; $term_taxonomy = $options['sameTermTaxonomy'] ?? 'category'; $next_post = get_next_post( $in_same_term, '' ); if ( ! is_object( $next_post ) ) { return false; } return $next_post->ID; } if ( 'previous-post' === $source ) { $in_same_term = $options['inSameTerm'] ?? false; $term_taxonomy = $options['sameTermTaxonomy'] ?? 'category'; $previous_post = get_previous_post( $in_same_term, '', $term_taxonomy ); if ( ! is_object( $previous_post ) ) { return false; } return $previous_post->ID; } return $id; } } GeneratePress_Pro_Dynamic_Tags_Adjacent_Posts::get_instance()->init();