[英]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.