我已经写了两个函数在Wordpress网站上一起工作,并且遇到了第二个问题。 这是第一个扫描图像的帖子的功能。如果找到一个,则选择该站点的主图像。如果没有图像,则按照默认图像。 这是功能:
function main_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $first_img = $matches [1] [0];
if(empty($first_img)){
//Defines a default image
$first_img = "http://www.example.com/image.jpg";
}
return $first_img;
}
上面的代码运行正常。对于第二部分,我试图指定如果使用默认图像,则应将Twitter卡设置为&#34;摘要。&#34;如果找到另一张图片,Twitter卡应设置为&#34; summary_large_image。&#34;
这里的功能是:
function twitter_card() {
global $post, $posts;
if ($first_img = "http://www.example.com/image.jpg") {
echo "summary";
} else {
echo "summary_large_image";
}
}
第二个功能无法正常工作,因为它始终返回&#34;摘要,&#34;列出的图像是否在帖子中使用。
如果您知道为什么第二个功能不起作用,我会喜欢一些见解。
谢谢!
答案 0 :(得分:3)
您需要==
而不是=
。
==
是比较
=
是作业
至于$first_image
,只需将它变为函数外的变量,然后在函数中写:
试试这个:
function twitter_card() {
global $post, $posts;
if (main_image() == "http://www.example.com/image.jpg") {
echo "summary";
} else {
echo "summary_large_image";
}
}
答案 1 :(得分:0)
请注意,当您使用单个=符号时,右侧的值将被分配给左侧的变量,然后将进行测试。 您的代码结果将始终为真
权利如果是这样的话:
if ($first_img = "http://www.example.com/image.jpg") {
echo "summary";
} else {
echo "summary_large_image";
}
您的代码中需要注意的另一件事是$ first_img不在范围内。