从嵌套简码调用父简码
Call parent shortcode from nested shortcode
是否可以从嵌套简码调用其父简码?
为了说明我的想法,请考虑以下示例:
[check-auth]
[has-auth]Hello, dear Username[/has-auth]
[no-auth]Please login here[/no-auth]
[/check-auth]
想法是检查父简码 check-auth
中的授权,然后在嵌套简码 has-auth
和 no-auth
.
中使用此信息
我也明白,如果这可能的话,这意味着我们将这些短代码绑定在一起,这样你就不能在 check-auth
之外使用 has-auth
(实际上你可以写 has-auth
所以这也将处理这种情况),这不是一个好的设计方案,但它仍然允许编写具有逻辑的复杂简码 :)
正确的方法是对具有嵌套简码的简码使用class。因此,从嵌套的短代码中,您始终可以访问某些 $this->property
或调用 $this->instanceMethod()
.
class 中定义的短代码的基本示例,您可以在此处找到 https://codex.wordpress.org/Function_Reference/add_shortcode#Examples。
是否可以从嵌套简码调用其父简码?
为了说明我的想法,请考虑以下示例:
[check-auth]
[has-auth]Hello, dear Username[/has-auth]
[no-auth]Please login here[/no-auth]
[/check-auth]
想法是检查父简码 check-auth
中的授权,然后在嵌套简码 has-auth
和 no-auth
.
我也明白,如果这可能的话,这意味着我们将这些短代码绑定在一起,这样你就不能在 check-auth
之外使用 has-auth
(实际上你可以写 has-auth
所以这也将处理这种情况),这不是一个好的设计方案,但它仍然允许编写具有逻辑的复杂简码 :)
正确的方法是对具有嵌套简码的简码使用class。因此,从嵌套的短代码中,您始终可以访问某些 $this->property
或调用 $this->instanceMethod()
.
class 中定义的短代码的基本示例,您可以在此处找到 https://codex.wordpress.org/Function_Reference/add_shortcode#Examples。