我无法在php中连接变量

时间:2019-03-14 07:55:06

标签: php wordpress

我正在对现有的Wordpress主题进行一些更改。

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

        return $videourl;
    }

此处$videourl包含所需的URL格式。一切正常,但是$title值未在URL中并置。它会被自动跳过。标题上我有the。

拨打电话的方式

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

$title已声明为全局,并且标题值是从函数中获取的。

3 个答案:

答案 0 :(得分:2)

PHP不会跳过$title变量:您的函数中未定义它,因此为空。要使用在函数外部定义的变量,您需要将global指令放在函数内部:

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

这将通知函数您要使用的$title与在函数外部声明的Intent相同。

答案 1 :(得分:0)

尝试一下:

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

更新:根据您所说的需要塞子而非标题的注释,请尝试以下操作:

$slug = get_post_field('post_name', $post);
$videourl = 'shows' 
    . $slug
    . '-' 
    . $post['season'] 
    . '-' 
    . $post['episodio'];

答案 2 :(得分:0)

感谢您的帮助。我解决了问题在于范围,但声明其全局性并不能解决问题。我在从$ post_id获得的函数中使用$ post传递了另一个参数,它解决了问题。 感谢您的努力