帮助合并2个PHP函数(Wordpress)

时间:2011-09-21 23:04:53

标签: php wordpress function wordpress-plugin wordpress-theming

我正在尝试将两个单独的PHP函数合并为一个我可以在我的Wordpress主题中使用的函数。我正在使用Wordpress功能获取关键字“_videoembed”的后置元素,然后将其从YouTube网址剪裁为YouTube视频ID。我将包括早期的功能和我是如何使用它们然后是我正在使用的那个。非常感谢所有帮助! -Matt

以前的方法

主题

<?php 
  $vidurl = get_post_meta($post->ID, "_videoembed", true );
  $youtube_id = getYouTubeIdFromURL($vidurl);
  $finalid = trim($youtube_id);
  echo $finalid;
?>

在functions.php

function getYouTubeIdFromURL($url)
{
$url_string = parse_url($url, PHP_URL_QUERY);
parse_str($url_string, $args);
return isset($args['v']) ? $args['v'] : false;
}

以下是我尝试合并两者的示例:

主题

<?php getvidID(); ?>

在functions.php

function getvidID() 
{
  $vidurl = get_post_meta($post->ID, "_videoembed", true );
  $url_string = parse_url($vidurl, PHP_URL_QUERY);
  parse_str($vidurl_string, $args);
  return isset($args['v']) ? $args['v'] : false;
  echo $vidurl;
}

正如您所看到的,我使用的旧方法非常庞大,我正在尝试简化操作,以便我的文件更易于使用,因此PHP函数更少。

谢谢!

马特

2 个答案:

答案 0 :(得分:0)

我会保持功能单元更小,而不是创建更大的单个功能。

Splitting a large function更小的功能单元是一种称为提取方法的已知重构模式。

合并小函数几乎与重构相反,重构旨在保持代码清晰,易于遵循和维护。

答案 1 :(得分:0)

功能用法:

<?php get_vid_id($post->ID); ?>

功能本身:

function get_vid_id($id) 
{
  $vidurl = get_post_meta($id, "_videoembed", true );
  $url_string = parse_url($vidurl, PHP_URL_QUERY);
  parse_str($vidurl_string, $args);
  return isset($args['v']) ? $args['v'] : false;
  echo $vidurl;
}

但我建议使用较少的功能。保持代码清洁。也许创建类?