php 在大多数情况下,创建一个处理WordPress短代码的类是过度的。但是,当您的短代码需要帮助时,它非常方便

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 在大多数情况下,创建一个处理WordPress短代码的类是过度的。但是,当您的短代码需要帮助时,它非常方便相关的知识,希望对你有一定的参考价值。

<?php

/**
 * Creating a class to handle a WordPress shortcode is overkill in most cases.
 * However, it is extremely handy when your shortcode requires helper functions.
 */
class My_Shortcode {

    protected
        $atts = array(),
        $content = false,
        $output = false;

    protected static $defaults = array(
        'class' => 'default-class',
    );

    public static function shortcode( $atts, $content ) {
        $shortcode = new self( $atts, $content );
        return $shortcode->output;
    }

    private function __construct( $atts, $content ) {
        $this->atts = shortcode_atts( self::$defaults, $atts );
        $this->content = $content;
        $this->init();
    }

    protected function init() {
        if( $this->content ) {
            $this->output = $this->html_wrap( $this->content );
        }
    }
    
    function html_wrap( $content ) {
        return '<div class="'. esc_attr( $this->get_att( 'class' ) ) .'">'. $content .'</div>';
    }

    function get_att( $name ) {
        return array_key_exists( $name, $this->atts ) ? $this->atts[$name] : false;
    }

}

add_shortcode( 'my_shortcode', array( 'My_Shortcode', 'shortcode' ) );

以上是关于php 在大多数情况下,创建一个处理WordPress短代码的类是过度的。但是,当您的短代码需要帮助时,它非常方便的主要内容,如果未能解决你的问题,请参考以下文章

什么程序用于在 html 上下文中处理 php 文件?

如何在不使用 boost 的情况下创建目录?

Wordpress admin-ajax.php 在没有处理功能的情况下正在死亡“0”

如何在不订阅 Angular 表单提交的情况下创建/更新项目

wordpress 插件是啥意思

我可以在不返回 html 文件的情况下使用 NodeJS 吗?