我正在将Google Maps 2脚本与Wordpress循环混合在一起,因此有一个用于地图数据的CMS平台。我有这个工作正常:
var point = new GLatLng(48.5139,-123.150531);
var marker = createMarker(point,"Lime Kiln State Park",
'<?php $post_id = 182;
$my_post = get_post($post_id);
$mapTitle = $my_post->post_title;
$mapIMG = get_post_meta($post_id, 'mapImage', true);
$snip = get_post_meta($post_id, 'mapExcerpt', true);
echo "<div class=\"span-12\">";
echo "<div class=\"mapTitle\">";
echo $mapTitle;
echo "</div>";
echo "<img class=\"mapImage\" src=\"";
echo bloginfo('url');
echo "/wp-content/files_mf/";
echo $mapIMG;
echo "\" /> ";
echo "<div class=\"mapContent\">";
echo $snip;
echo "</div>";
echo "<div class=\"moreLink\">";
echo "<a href=\"";
echo $permalink = get_permalink( $post_id );
echo "\">Find out more » </a>";
echo "</div>";
echo "</div>";
?>')
map.addOverlay(marker);
但是我希望能够在php循环的开头包含两个变量,这样这两个变量也可以由自定义字段生成。有人可以告诉我,写这个的正确方法是,所有数据都可以从该帖子ID中的字段中提取出来吗?因此,lat / long和title也可以在182个字段中设置。
答案 0 :(得分:1)
我想我得到你所要求的。我认为最有帮助的是查看编码约定。可读性非常重要。例如,尽量不要将php与输出混合太多。首先执行php,然后在页面的下方,只需在您需要的地方回显准备好的变量。它使事情更容易阅读。另外,单引号是你的朋友。
我相信这可以解决您的问题:
<?php
$post_id = 182;
$my_post = get_post($post_id);
$mapTitle = $my_post->post_title;
$mapIMG = get_post_meta($post_id, 'mapImage', true);
$snip = get_post_meta($post_id, 'mapExcerpt', true);
$permalink = get_permalink( $post_id );
// Is this what you mean??
$lat = $my_post->post_lat;
$long = $my_post->post_long;
$pass_to_function = '
<div class="span-12">
<div class="mapTitle">'.$mapTitle.'</div>
<img class="mapImage"
src="'.bloginfo('url').'/wp-content/files_mf/'.$mapIMG.'" />
<div class="mapContent">'.$snip.'</div>
<div class="moreLink">
<a href="'.$permalink.'">Find out more » </a>
</div>
</div>';
?>
var point = new GLatLng(<?php echo $lat.', '.$long; ?>);
var marker = createMarker(point,"<?php echo $mapTitle; ?>", '<?php echo $pass_to_function; ?>')
map.addOverlay(marker);
答案 1 :(得分:0)
摆脱所有echo
并以此方式实现:
$snip = get_post_meta($post_id, 'mapExcerpt', true);
?>
<div class="span-12">
<div class="mapTitle">
<?=$mapTitle?>
</div>
...etc
答案 2 :(得分:0)
我这样做是为了评论,但那里没有编码,所以......
“......我将从大约20个不同的帖子ID中抽出来......”
如何检索这些帖子ID?从数据库?什么数据被拉?我在猜测纬度/经度,标记名称和标记的ID,对吧?如果是这样的话,那么这样的事情就可以了:
$sql = "SELECT id, lat, long, name FROM table..."; // whatever it would be
$res = mysql_query($sql);
while($row = mysql_fetchrow_array($res)) {
$title = get_title($row['id']);
$img = get_Post_Meta($row['id']);
// and populate more variables for whatever data you need
// start a heredoc
echo <<<EOF
var point = new GLatLng({$row['lat']},{$row['long']});
var marker = createMarker(point,"{$row['name']}", '
<div class="this">
<div class="that">
{$title} <img src="{$img}" />
</div>
</div>
';
EOF;
} // end of while loop
请记住清理您作为Javascript代码插入的任何文本。如果(比方说)标记的名称包含您在其中插入的相同类型的引号,则会导致javascript语法错误,因此请确保为您将变量插入的任何内容转义相应的引号。