Помогите объединить 2 функции PHP (Wordpress) - PullRequest
1 голос
/ 22 сентября 2011

Я пытаюсь объединить две отдельные функции PHP в одну, которую я могу использовать в своей теме Wordpress.Я использую функции Wordpress, чтобы получить мета-запись ключа "_videoembed", который затем обрезается с URL-адреса YouTube до идентификатора видео YouTube.Я включу обе предыдущие функции и то, как я их использую, а затем ту, над которой я работаю.Вся помощь очень ценится!-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 голосов
/ 22 сентября 2011

Использование функции:

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

Но я бы рекомендовал использовать меньше функций.Содержит ваш код в чистоте.Может быть, создавать классы?

0 голосов
/ 22 сентября 2011

Я бы оставил функциональные единицы меньше, вместо того, чтобы создавать одну большую функцию.

Разделение большой функции на более мелкие функциональные единицы представляет собой известный шаблон рефакторинга, называемый метод извлечения .

Объединение небольших функций в значительной степени противоположно рефакторингу, который нацелен на поддержание чистоты кода, его легче отслеживать и поддерживать.

...