嗨我有一个地理位置功能,我用于我的基于wordpress的城市,我想根据网站访问者的位置使用显示位置相关的帖子。
我正在使用的功能:
<form action="" method="POST" name="u_select_radius" id="u_select_radius">
<select>
<option value="5">5 Miles</option>
<option value="10">10 Miles</option>
<option value="20">20 Miles</option>
<option value="50">50 Miles</option>
<option value="100">100 Miles</option>
</select>
<input type="submit" value="Search" name="Search" class="blue" />
</form>
<?php //begin geoposty demo
$localCoupons = new WP_Query('post_type=post&posts_per_page=-1&orderby=meta_value&meta_key=City&order=ASC');
if ($localCoupons->have_posts()): while ($localCoupons->have_posts()): $localCoupons->the_post();
if (function_exists('geoDistanceFrom') && $city != '' && $state != '') {
///get user radius selection
if ( isset($_POST['u_select_radius'])) {
$radius = intval($_POST['u_select_radius']);
} else {
$radius = 100;
}
if (geoDistanceFrom($city . ',' . $state) < $radius /* Mile radius */) {
echo '<h3>' . get_the_title() . '</h3>';
echo '<p>' . $city . ', ' . $state . '</p>';
// the_content();
}
}
endwhile; endif;
// end geoposty demo
?>
</div>
此函数检查插件函数(geoDistanceFrom)是否存在,然后检查某些条件以使帖子基于(城市和州)。如果它显示“100”(英里半径),我想让用户选择他们想要的半径(例如5,10,20,50,100等)
我想我需要创建一个具有预定义值(5,10,20,50等)的数组供您选择。我需要一些帮助。如何允许用户为此功能选择值?
如果此解决方案需要任何其他附加信息,请与我们联系。
非常感谢!
答案 0 :(得分:2)
我的建议是创建一个带有下拉列表框的简单表单,其中包含您希望用户能够选择的值。检查它的动作是否设置为执行地理定位的脚本,然后将半径的变量设置为用户选择的任何内容。
<form action="geolocation_script.php" method="POST" name="u_select_radius" id="u_select_radius">
<select>
<option value="5">5 Miles</option>
<option value="10">10 Miles</option>
<option value="20">20 Miles</option>
<option value="50">50 Miles</option>
<option value="100">100 Miles</option>
</select>
geolocation_script.php 然后有一些代码来抓住他们的选择
<?php
if (function_exists('geoDistanceFrom') && $city != '' && $state != '') {
//get user radius selection
if ( isset($_POST['u_select_radius'] ) {
$radius = intval($_POST['u_select_radius']);
} else {
$radius = 100;
}
if (geoDistanceFrom($city . ',' . $state) < $radius /* Mile radius */) {
...
请注意,这段代码并不完美,但是应该给你一些合作的东西。
答案 1 :(得分:0)
据推测,您将在表单中提供此选项,因此只需使用select
:
<select name="distance">
<option value="5">5 miles</option>
<option value="10">10 miles</option>
etc...
</select>
你如何产生这取决于你。它可以简单地硬编码到页面中,或者您可以在某处存储允许的距离并动态构建选项。
然后只需在提交时使用常用的表单处理工具检索该值。