簡體   English   中英

將另一個函數的值分配給同一php類中的其他函數

[英]assign value from another function to other in same php class

我開發了可視作曲家自定義元素,我想從elementMapping函數向elementCss函數分配shortcode $ atts [“ elementcolor”]的值

請讓我知道如何從elementMapping函數向elementCss函數分配簡碼$ atts [“ elementcolor”]的值

<?php 

class newelement extends WPBakeryShortCode {
# Construct ----------------
function __construct() {
    add_action( 'init', [ $this, 'elementMapping' ] );
    add_shortcode( 'element_Shortcode', [ $this, 'elementShortcode' ] );
    add_action( 'wp_enqueue_scripts', [ $this, 'elementCss' ]);
}
# Fields -------------------
public function elementMapping() {
    if ( !defined( 'WPB_VC_VERSION' ) ) {
        return;
    }
    vc_map(
        [
            "base"              => "elementShortcode",
            "params" => [
                [
                    "type" => "colorpicker",
                    "param_name" => "elementcolor"
                ],
            ],
        ]
    );
}
# Output Code ---------------------------------
public function elementShortcode () {
    $atts = shortcode_atts([
        "elementcolor" => "",
    ], $atts);
    extract($atts);
    ob_start();
    ?>

    <?php
    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}
# css ---------------------------------
public function elementCss() {

    // this value $elementcolor = $atts["elementcolor"];

    $css = "
             .element{ color: {$elementcolor} ;}
    ";
    wp_add_inline_style( 'main', $css);
 }
}
new newelement();

使用私有變量存儲您的簡碼值:

class newelement extends WPBakeryShortCode {
    private $atts; 
    # Construct ----------------
    function __construct() {
        add_action( 'init', [ $this, 'elementMapping' ] );
        add_shortcode( 'element_Shortcode', [ $this, 'elementShortcode' ] );
        add_action( 'wp_enqueue_scripts', [ $this, 'elementCss' ]);
    }
    # Fields -------------------
    public function elementMapping() {
        if ( !defined( 'WPB_VC_VERSION' ) ) {
            return;
        }
        vc_map(
            [
                "base"              => "elementShortcode",
                "params" => [
                    [
                        "type" => "colorpicker",
                        "param_name" => "elementcolor"
                    ],
                ],
            ]
        );
    }
    # Output Code ---------------------------------
    public function elementShortcode () {
        $atts = shortcode_atts([
            "elementcolor" => "",
        ], $atts);
        $this->atts = $atts;
        extract($atts);
        ob_start();
        ?>

        <?php
        $output = ob_get_contents();
        ob_end_clean();
        return $output;
    }
    # css ---------------------------------
    public function elementCss() {

        $elementcolor = $this->atts["elementcolor"];

        $css = "
                 .element{ color: {$elementcolor} ;}
        ";
        wp_add_inline_style( 'main', $css);
     }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM