Я не могу объединить переменную в PHP - PullRequest
0 голосов
/ 14 марта 2019

Я делаю некоторые изменения в существующей теме Wordpress.

public function checkTv( $post ) {
         global $title;
        if ( ! empty( $post['season'] ) ) { 
            $videourl ='shows'.$title. $post['season'].'-'. $post['episodio'];
        }

        return $videourl;
    }

Здесь $videourl содержит желаемый формат URL.Все работает, но значение $title не объединяется в URL.Это пропускается автоматически.В заголовке у меня есть слаг.

Это способ вызова

$postmeta = doo_postmeta_episodes($post_id);
$videourl = $this->checkTv( $postmeta );

$title объявлен как глобальный, а значение заголовка взято из функции.

Ответы [ 3 ]

2 голосов
/ 14 марта 2019

PHP не пропускает переменную $title: она не определена в вашей функции и поэтому пуста.Чтобы использовать переменную, которая определена вне функции, вам нужно поместить директиву global внутри вашей функции:

public function checkTv($post) {
    global $title;
    //...
}

Это сообщает функции, что $title, который вы собираетесь использовать, являетсятакой же, как объявленный вне функции.

0 голосов
/ 14 марта 2019

Спасибо за вашу помощь. Я решил это. Проблема была в объеме, но объявление его глобальным не решало проблему. Я передал другой параметр с $ post в функцию, полученную из $ post_id, и это решило проблему. спасибо за ваши усилия

0 голосов
/ 14 марта 2019

Попробуйте это:

$videourl = 'shows'
    . get_the_title($post) 
    . '-' 
    . $post['season'] 
    . '-' 
    . $post['episodio'];

ОБНОВЛЕНИЕ: На основании комментария, который вы заявили, вам нужен слаг вместо заголовка, попробуйте это:

$slug = get_post_field('post_name', $post);
$videourl = 'shows' 
    . $slug
    . '-' 
    . $post['season'] 
    . '-' 
    . $post['episodio'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...