WordPress 插件和 wp_head

发布于 2024-11-04 04:06:36 字数 857 浏览 3 评论 0原文

我重新编辑了这个问题:在显示第 2 点中的输出之前,是否可以将变量传递给全局颜色(第 3 点),例如全局变量或其他变量?

        class myclass
        {
             public function init()
             {
                  global $shortcode_tags;
                      add_shortcode( MYSHORTCODE, array( 'myclass', 'shortcode' ) );
                  // * point 1
                  return;

             }

             public function shortcode( )
             {
                 // *point2
             } 

             function globalcolor($color)


              {
                     echo '<style>body{color:' .$color . '}</style>' . "\n";
                     // * point 3
                 }
            }

add_action( 'wphead', array( 'myclass', 'globalcolor' ) ); 

add_action( 'init', array( 'myclass', 'init' ) );

附言。现在我正在阅读有关自定义字段的内容。在此处输入代码

I've re-edited this question: is possible to before to show the output in point 2 pass a variable to global color (point 3) like a global variable or something?

        class myclass
        {
             public function init()
             {
                  global $shortcode_tags;
                      add_shortcode( MYSHORTCODE, array( 'myclass', 'shortcode' ) );
                  // * point 1
                  return;

             }

             public function shortcode( )
             {
                 // *point2
             } 

             function globalcolor($color)


              {
                     echo '<style>body{color:' .$color . '}</style>' . "\n";
                     // * point 3
                 }
            }

add_action( 'wphead', array( 'myclass', 'globalcolor' ) ); 

add_action( 'init', array( 'myclass', 'init' ) );

PS. right now im reading about custom fields.enter code here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

走过海棠暮 2024-11-11 04:06:36

do_action() 由 WordPress 调用,您需要 add_action()< /代码>

init 动作来得太早了。现在,您甚至可以为后端、AJAX 请求等调用该类。使用仅在前端调用的钩子 template_redirect

您无法按照您尝试的方式发送颜色值。请参阅示例代码以获取工作示例。

示例代码:

class My_Plugin {

    /**
     * Container for your color value.
     * @var string
     */
    static $color;

    public static function init()
    {
        // Set the color value as a class member.
        self::$color = '#345';

        // Class methods are addressed with an array of the object or the
        // class name and the function name.
        add_action( 'wp_head', array ( __CLASS__, 'print_color' ) );
    }

    public static function print_color() 
    {
        // In action you have to print/echo to get an output.
        print '<style>body{color:' . self::$color . '}</style>';
    }
}
add_action( 'template_redirect', array ( 'My_Plugin', 'init' ) );

我强烈建议 https://wordpress.stackexchange.com/ 询问有关 WordPress 的更多问题。 :)

do_action() is called by WordPress, you want add_action().

The action init comes way too early. You call the class now even for the backend, for AJAX requests etc. Use the hook template_redirect which is called on the frontend only.

You cannot send the color value the way you tried. See the sample code for a working example.

Sample code:

class My_Plugin {

    /**
     * Container for your color value.
     * @var string
     */
    static $color;

    public static function init()
    {
        // Set the color value as a class member.
        self::$color = '#345';

        // Class methods are addressed with an array of the object or the
        // class name and the function name.
        add_action( 'wp_head', array ( __CLASS__, 'print_color' ) );
    }

    public static function print_color() 
    {
        // In action you have to print/echo to get an output.
        print '<style>body{color:' . self::$color . '}</style>';
    }
}
add_action( 'template_redirect', array ( 'My_Plugin', 'init' ) );

I strongly recommend https://wordpress.stackexchange.com/ to ask more questions on WordPress. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文