86 lines
1.7 KiB
PHP
86 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* My Library Shortcode
|
|
*
|
|
* @package Ocean_Extra
|
|
* @category Core
|
|
* @author OceanWP
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
if ( ! class_exists( 'OceanWP_Library_Shortcode' ) ) {
|
|
|
|
class OceanWP_Library_Shortcode {
|
|
|
|
/**
|
|
* Start things up
|
|
*/
|
|
public function __construct() {
|
|
add_shortcode( 'oceanwp_library', array( $this, 'library_shortcode' ) );
|
|
}
|
|
|
|
/**
|
|
* Registers the function as a shortcode
|
|
*/
|
|
public function library_shortcode( $atts, $content = null ) {
|
|
|
|
// Attributes
|
|
$atts = shortcode_atts( array(
|
|
'id' => '',
|
|
), $atts, 'oceanwp_library' );
|
|
|
|
ob_start();
|
|
|
|
if ( $atts[ 'id' ] ) {
|
|
|
|
// Check if the template is created with Elementor
|
|
$elementor = get_post_meta( $atts[ 'id' ], '_elementor_edit_mode', true );
|
|
|
|
// If Elementor
|
|
if ( class_exists( 'Elementor\Plugin' ) && $elementor ) {
|
|
|
|
echo Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $atts[ 'id' ] );
|
|
|
|
}
|
|
|
|
// If Beaver Builder
|
|
else if ( class_exists( 'FLBuilder' ) && ! empty( $atts[ 'id' ] ) ) {
|
|
|
|
echo do_shortcode( '[fl_builder_insert_layout id="' . $atts[ 'id' ] . '"]' );
|
|
|
|
}
|
|
|
|
// Else
|
|
else {
|
|
|
|
// Get template content
|
|
$content = $atts[ 'id' ];
|
|
|
|
if ( ! empty( $content ) ) {
|
|
|
|
$template = get_post( $content );
|
|
|
|
if ( $template && ! is_wp_error( $template ) ) {
|
|
$content = $template->post_content;
|
|
}
|
|
|
|
}
|
|
|
|
// Display template content
|
|
echo do_shortcode( $content );
|
|
|
|
}
|
|
}
|
|
|
|
return ob_get_clean();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
new OceanWP_Library_Shortcode(); |