在 wp-admin 自定义页面的内容中调用 php 函数

Call php function in content in custom page in wp-admin

我在 wp-admin 中编辑自定义页面。目前在编辑器中我看到

[vc_column_text]Titile1[/vc_column_text]

在每个 [/vc_column_text] 之后,我需要显示一些来自数据库的信息。我如何在 wp-admin 编辑器中使用一些参数调用 php 函数? 像这样:

[vc_column_text]Titile[/vc_column_text]
[getInforFromDatabase('Titile1')]

这需要做很多工作。您可能不会直接从 WP-Admin 编辑器中调用 PHP 函数,但您可以创建一个简单、基本的插件来为您完成繁重的工作。然后公开一个您可以在 WP 管理编辑器中使用的短代码。

为此,首先在您的 wp-content/plugins 目录中创建一个目录。出于演示目的,我们将调用此目录:dbInfoSifter,但名称完全由您决定。最后,该目录的路径为:wp-content/plugins/dbInfoSifter

现在在此文件夹 (dbInfoSifter) 中,再次创建一个具有相同名称的 PHP 文件,以便您拥有:wp-content/plugins/dbInfoSifter/dbInfoSifter.php。现在在 dbInfoSifter.php 文件中添加以下代码:

    <?php
        /*
        Plugin Name: DB Info Sifter
        Plugin URI: your-domain.tld
        Description: Simple Plugin to sift data From Database.
        Author: Your Name
        Author URI: http://your-domain.tld
        Version: 1.0.0
         */

        // THE COMMENTED LINES ABOVE INFORMS WORDPRESS THAT THIS IS A PLUGIN.
        // SO IT KNOWS TO ADD IT TO THE PLUGINS LIST...
        // WE SHALL REVISIT THIS SOONER THAN LATER...


        // IN THIS FILE YOU SHOULD PUT ALL THE LOGIC
        // FOR GETTING DATA FROM THE DATABASE OR DOING ANYTHING AT ALL
        // HOWEVER, THE MOST IMPORTANT THING IS TO EXPOSE THE SHORT-CODE 
        // SO THAT WE CAN USE IT INSIDE THE WP-ADMIN EDITOR.
        // WE CAN DO THAT WITH THE FOLLOWING LINES OF CODE...
        add_shortcode('getInfoFromDatabase', 'dbsGetInfoFromDatabase');


        // THE LINE ABOVE EXPOSES THE SHORT-CODE SO THAT YOU CAN CALL IT
        // FROM YOUR WP-ADMIN EDITOR... THE ARGUMENTS ARE SPECIFIC:
        // THE 1ST ARGUMENT IS THE NAME OF THE SHORT-CODE
        // THE 2ND IS THE NAME OF THE FUNCTION TO RUN WHEN THIS SHORT-CODE IS CALLED.
        // SO NOW, WE WRITE OUT THE FUNCTION ITSELF:
        //THE $atts PARAM IS AN ARRAY OF PARAMETERS PASSED TO THE SHORT-CODE.
        function dbsGetInfoFromDatabase($atts){
            extract( shortcode_atts( array(
                'title1'     => "default_value", /*<= SET DEFAULT VALUE*/
                'param2'     => "default_value", /*<= SET DEFAULT VALUE*/
            ), $atts ));
            // WITH THE extract FUNCTION YOU CAN NOW USE title1 AND param2
            // AS NORMAL VARIABLES IN YOUR PROGRAMS LIKE $title1, $param2.
            // SO THIS IS WHERE YOU BUILD YOUR LOGIC TO GET DATA FROM THE 
            // DATABASE & YOU CAN USE THE PARAMETERS TOO...
            // YOU ARE NOT LIMITED TO THE NUMBER OF PARAMETERS TO USE
            // AS WELL AS THE NAME OF THE PARAMETERS... 
            // THOSE ARE COMPLETELY UP TO YOU...

            /* AND SO; YOUR LOGIC CONTINUES...*/   


            // IT IS HIGHLY IMPORTANT THAT THIS FUNCTION RETURNS A VALUE.
            // MOSTLY LIKELY, THE TYPE WOULD BE A STRING
            // (ESPECIALLY IF YOU WANT TO DISPLAY IT AUTOMATICALLY) 
            return $stringValueResultingFromDBTransactions;
        }

仅此而已……没什么特别的……但是无论如何,您也可以在此文件中使用其他功能来执行某些操作。但是,此文件(在您的情况下)最重要的部分是:1.) 函数:dbsGetInfoFromDatabase($args) 和 2.) 文件顶部的注释。

现在,在 WP-Admin 编辑器中;您可以使用我们创建的短代码简单地引用此函数,如下所示:

          // WP-ADMIN EDITION (BACKEND)
          [vc_column_text]Titile[/vc_column_text]
          [getInfoFromDatabase title1='Titile1']  //<== CALL YOUR SHORT-CODE 

或者,您可以这样做:

          //WP-ADMIN EDITION (BACKEND)
          [vc_column_text]Titile[/vc_column_text]
          [getInfoFromDatabase title1='Titile1'][/getInfoFromDatabase]         

两者都会达到相同的结果,但第一个似乎更简洁(对我而言)。任你选。

最后,您需要在后端激活插件才能正常工作。所以;导航到您的插件部分(在 Wordpress 的后端)。您会注意到一个名为 DB Info Sifter 的新插件。 只需激活它,您就大功告成了。您的短代码现在可以像您实际调用一个函数并向它传递 $title1 参数一样工作。

我希望这对您有所帮助,让您有一个良好的开端... 祝你好运,我的朋友...