如何在主题functions.php中定义和使用辅助函数?

Jam*_*one 6 php wordpress

如何在 Wordress Theme functions.php 文件中正常工作?

我还没有弄清楚如何使主题的functions.php 文件中的顶部函数对底部函数可用。我不了解如何设置挂钩以便它们可以一起工作。谢谢你。

过滤器/助手/随便你的功能:

function poohToPee( $pooh_log )
{
  switch( $pooh_log )
  {
    case 'gross-poop':
      $pee_equivalent = 'Grossest of Pees';
    break;
    case 'ok-poop':
      $pee_equivalent = 'Bland Snack Pee';
    break;
    case 'shang-tsung-plop':
      $pee-equivalent = 'Random U-Stream';
    break;
  }
  return $pee_equivalent;
}
Run Code Online (Sandbox Code Playgroud)

Ajax 处理函数:

function screw_loose()
{
  if( isset($_REQUEST['pooh_log']) )
  {
    echo poohToPee( $_REQUEST['pooh_log'] );
  }
}
add_action('wp_ajax_priv_screw_loose', 'screw_loose')
Run Code Online (Sandbox Code Playgroud)

Tod*_*tor 3

add_action 通常会在调用钩子时调用您正在传递的函数。

由于您正在使用某种 ajax 挂钩,您真的能够确保您的函数没有被调用吗?由于它在后台运行,因此不会将任何内容回显到屏幕上。

通常,您在functions.php 中定义的任何函数都可以在主题中轻松使用。

显然,通常最好组织并拥有类,在这种情况下,您可以将方法作为数组传递给钩子,例如,add_action( 'admin_init', array( $this, 'someFunction' ) );add_action刚刚所做的将被放入__construct类的函数中。

例如你可以这样做:

class helloWorld
{
    function __construct()
    {
        add_action( 'admin_init', array( $this, 'echoItOut' ) );
    }

    function echoItOut()
    {
        echo 'Hello World';
    }
}

$helloWorld = new helloWorld;
Run Code Online (Sandbox Code Playgroud)

或者你也可以这样做:

class helloWorld
{
    function echoItOut()
    {
        echo 'Hello World';
    }
}

$helloWorld = new helloWorld;

add_action( 'admin_init', array( $helloWorld, 'echoItOut' ) );
Run Code Online (Sandbox Code Playgroud)

或者简单地:

function echoItOut()
{
    echo 'Hello World';
}

add_action( 'admin_init', 'echoItOut' );
Run Code Online (Sandbox Code Playgroud)

如果您将我提供的任何这些代码块放入您的functions.php文件中并转到您的仪表板,您很可能会在管理栏下方的顶部看到“Hello World”(如果仪表板可能会因主题而异)有自定义样式)。