我正在尝试将两个单独的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函数更少。
谢谢!
马特
答案 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;
}
但我建议使用较少的功能。保持代码清洁。也许创建类?