我首先要说的是我对编码很新,所以我可能会以错误的方式解决这个问题。
基本上我有以下php函数将url更改为url的页面标题而不是简单的web地址。因此,它不会像www.google.com那样显示为Google。
<?php
function get_title($url){
$str = file_get_contents($url);
if(strlen($str)>0){
$str = trim(preg_replace('/\s+/', ' ', $str)); // supports line breaks inside <title>
preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title); // ignore case
return $title[1];
}
}
?>
这很棒,但要实现这一点,我必须使用下面的代码。
echo get_title("http://www.google.com/");
然而,这仅适用于预定义的URL。我现在在我的网站上设置的是html小部件中的短代码。
<a href='[rwmb_meta meta_key="link_1"]'>[rwmb_meta meta_key="link_1"]</a>
此短代码显示用户在Wordpress后端输入的URL /链接,并将其作为链接显示在前端。但是我想将 get_title函数应用于上面的短代码,而不是网页地址,而是显示页面标题。
这可能吗?
提前致谢。
答案 0 :(得分:0)
来自您可以使用parse_url($url, PHP_URL_HOST);
更简单的方法是拥有一组链接,例如
$links[] = 'some1 url here';
$links[] = 'some2 url here';
然后使用函数循环你的$ links数组。
foreach($links as $link)get_title($link);
https://metabox.io/docs/get-meta-value/
尝试:
$files = rwmb_meta( 'info' ); // Since 4.8.0
$files = rwmb_meta( 'info', 'type=file' ); // Prior to 4.8.0
if ( !empty( $files ) ) {
foreach ( $files as $file ) {
echo $file['url'];
}
}