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

时间:2013-12-23 07:42:26

标签: php wordpress

如何让以下内容在Wordress Theme functions.php文件中正常工作?

我还没想出如何在主题的functions.php文件中为top函数提供top函数。我没有抓住如何设置挂钩,以便它们可以一起工作。谢谢。

过滤器/助手/ whateveryoucallit功能:

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;
}

Ajax处理函数:

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

1 个答案:

答案 0 :(得分:1)

add_action通常会调用您在调用hook时传递的函数。

既然你正在使用某种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;

或者您也可以这样做:

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

$helloWorld = new helloWorld;

add_action( 'admin_init', array( $helloWorld, 'echoItOut' ) );

或者简单地说:

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

add_action( 'admin_init', 'echoItOut' );

如果你把我在functions.php文件中提供的任何代码块放到你的仪表板上,你会看到“Hello World'最有可能在管理栏下方的顶部打印出来(如果仪表板具有自定义样式,则可能因主题而异)。