• 生命不息,奋斗不止
  • 我思故我在
  • 奔跑是一种状态

php-WordPress 全局变量的思考

wp主题 admin 76℃ 0评论

php-WordPress 全局变量的思考

脚本语言应该都是这样实现的

通过全局变量 来进行变量的传递

$post 作为一个常用的全局变量,在for循环中也 是生效的

例子:

//首页幻灯
function dafi_shoko_Slide($get_total=5,$parent=0) {
global $wpdb;
global $post;
if ($get_total>5) $get_total=5;
$parent = ($parent == 0) ? '' : "and post_parent = $parent";
$request = "SELECT ID, post_title FROM $wpdb->posts p, $wpdb->postmeta pm WHERE p.ID = pm.post_id and p.post_status = 'publish' and pm.meta_key='_thumbnail_id' $parent ORDER BY ID desc";

$slides = $wpdb->get_results($request);
$homeResult = array();
//$a='0';$b='1';$c='2';$d='3';//$a标题;$b描述;$c链接;$d图片
foreach ($slides as $post) {
if (is_sticky($post->ID)) {
array_push($homeResult, get_the_title($post->ID));
array_push($homeResult, get_the_title($post->ID));
array_push($homeResult, get_permalink($post->ID));
//get_the_post_thumbnail($post->ID, 'slide-thumb') 返回<img .../> // thumbnail, medium, large or full
// $medium_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail');
$medium_image_url = catch_first_image();
array_push($homeResult,$medium_image_url);
}
}
return $homeResult;
}

如果不声明 global,则$post是方法内的局部变量,只在本方法内有效,如果第一步声明了,就使用全局变量了

包括foreach中的函数。比如catch_first_image函数中 使用到了全局变量,只有在该方法中也声明,那么函数中获取的对象,才会随着foreach变化而变化。

通过:

https://www.cnblogs.com/borage/p/3645285.html

https://www.cnblogs.com/Strive-count/p/6155066.html

学习了下

global 是引入外部变量的意思

Global 是全文可用

GLOBALS 是全局可用

点赞 (0)
发表我的评论
取消评论

表情     7 + 9 = ? (必填)

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址