{ \add_shortcode( $name, [ $this, $name . '____wrapper' ] ); } } /** * Removes a shortcode * * @param $name */ public function remove_shortcode( $name ) { unset( $this->_shortcodes[ $name ] ); $this->deactivate( $name ); } /** * De-activates a shortcode * * @param $shortcode */ public function deactivate( $shortcode ) { if ( isset( $this->_shortcodes[ $shortcode ] ) ) { \remove_shortcode( $shortcode ); } } public function is_rest_request() { return \defined( 'REST_REQUEST' ) || \strpos( $_SERVER['REQUEST_URI'], 'wp-json' ) !== false; } public function __call( $method, $args ) { $params = \array_shift( $args ); $inner_content = \array_shift( $args ); $parts = \explode( '____', $method ); $shortcode = \array_shift( $parts ); if ( \doing_filter( 'the_content' ) && ! \doing_filter( 'widget_text' ) ) { $retval = $this->replace_with_placeholder( $shortcode, $params, $inner_content ); } else { // Widgets don't use placeholders. return $this->render_shortcode( $shortcode, $params, $inner_content ); } return $retval; } public function render_shortcode( $shortcode, $params = [], $inner_content = '' ) { if ( isset( $this->_shortcodes[ $shortcode ] ) ) { $shortcode = $this->_shortcodes[ $shortcode ]; if ( \is_callable( $shortcode['transformer'] ) ) { $params = \call_user_func( $shortcode['transformer'], $params ); } $method = ( \is_null( $shortcode['callback'] ) && \is_callable( $shortcode['transformer'] ) ) ? [ $this, 'render_legacy_shortcode' ] : $shortcode['callback']; $retval = \call_user_func( $method, $params, $inner_content ); } else { $retval = 'Invalid shortcode'; } return $retval; } /** * Prevents wptexturize * * @param $shortcode * @param array $params * @param string $inner_content * @return mixed|void */ public function replace_with_placeholder( $shortcode, $params = [], $inner_content = '' ) { $id = \count( $this->_found ); $this->_found[ $id ] = [ 'shortcode' => $shortcode, 'params' => $params, 'inner_content' => $inner_content, ]; $placeholder = \sprintf( $this->_placeholder_text, $id ); return \apply_filters( 'ngg_shortcode_placeholder', $placeholder, $shortcode, $params, $inner_content ); } /** * @return string */ public function get_shortcode_regex() { $keys = \array_keys( $this->_shortcodes ); return '/' . \get_shortcode_regex( $keys ) . '/'; } } Mencken – Für eine freiwillige Gesellschaft
Zum Inhalt springen

Mencken