2016-04-24 3 views
0

В настоящее время я разрабатываю тему WordPress на основе _s, потому что проект отличается от обычных проектов WordPress.Пользовательская функция не работает в Wordpress

Я начал несколько дней назад и сделал проектирование, и теперь я застрял в одном месте в течение нескольких часов.

Я пытаюсь создать функцию для генерировать идентификатор видео с Youtube link (настраиваемое поле выполняет задание для типа сообщения «видео»).

Выходной сигнал выглядит примерно так: a0uGWc170Jc.

Код я использовал ниже:

$id = get_post_meta($post->ID, 'video_option_youtube-link', true); 
$id = explode('?v=', $id); 
if (empty($id[1])) { 
    $id = explode('/v/', $id); 
} 
$id = explode("&", $id[1]); 
$id = $id[0]; 
echo $id; 

Этот код работает хорошо только тогда, когда я добавляю его внутри WP Query. Я попытался сделать функцию и вставил эту функцию в файл function.php темы и попытался эхо внутри WP_Query, но он возвращает ошибку php. Функция я сделал это:

function my_videoid() { 
    $id = get_post_meta($post->ID, 'video_option_youtube-link', true); 
    $id = explode('?v=', $id); 
    if (empty($id[1])) { 
     $id = explode('/v/', $id); 
    } 
    $id = explode("&", $id[1]); 
    $id = $id[0]; 
    return $id; 
} 

(также пытался повторить вместо возвращения)

Итак, что я делаю неправильно?

+0

С каким словом вы связываете WordPress и какую ошибку получаете? –

+0

Я думаю, что вы делаете это неправильно. Сначала вы должны определить глобальные $ post; перед get_post_meta, чтобы он работал. Во-вторых, вам нужно передать пост id в качестве аргумента и использовать эту функцию в get_post_meta в своей функции, если вы хотите сделать ее независимой. – uzma

ответ

0

Я думаю, что вы пропустили глобальную $ post, $ wpdb;

Пожалуйста, попробуйте.

Смежные вопросы