我需要确保我没有在我的网站上打开安全漏洞。我有一个名为“Communities”的自定义帖子类型和一个名为“Floor Plans”的自定义帖子类型,需要在单个Floorplan帖子的URL中添加一个参数。
我的目标是,当从社区单个帖子中选择Floorplan帖子对象时,它会将社区名称(即单个社区帖子标题)附加到URL,以便在下一页上使用。因此,启用查询变量:
<?php
//* Enable queryvars (functions.php)
add_filter(\'query_vars\', \'parameter_queryvars\' );
function parameter_queryvars( $qvars )
{
$qvars[] = "community";
return $qvars;
}
我有一个名为“动态楼层平面”的模板部分,它位于单个社区帖子底部的一个循环中。我正在获取当前社区页面的single\\u post\\u标题,并将其传递到URL,以便使用$\\u GET可以使用它
我们选择此方法的原因是“平面布置图”帖子类型有一个规范/默认版本,该版本与特定于社区的对应类型具有相同的属性。为了避免出现post关系情况(在某些情况下会给用户提供完全错误的数据),社区版本只需能够在非常特定的实例中使用这些查询字符串。
<?php
//* dynamic-floor-plans template part (placed in loop on communities page)
global $post;
$string = strtolower(single_post_title( null, false ));
$slug = str_replace(\' \',\'-\',$string);
?>
<div class="card-button">
<a class="small expanded secondary button"
href="<?php echo get_the_permalink() . \'?community=\' . $slug ?>">View Floorplan</a>
</div>
现在,这完全奏效了。我可以使用$\\u GET在随后选择的floorplan单页上获取社区变量,前端的工作似乎很好:
<?php
//* Single Floorplans Template
$community = $_GET["community"];
?>
<h1 class="entry-title"><?php echo $title ?></h1>
<h4>
<?php if ($community) { ?>
At <?php echo $community; } ?>
</h4>
...
我只是忍不住觉得这不符合犹太教,或者有一种更安全的方法来做到这一点。
我会被剥削吗?我也可以包括循环本身的函数,但我认为这段代码足以开始评估。