这可能非常深入,但我会尽我所能!
我正在我的Wordpress网站上显示所有相关页面标题的下拉列表,这些标题与我编写的插件中的一些照片集相关联,并且它们的工作非常好。
除了两个标题,两个标题都包含&符号(未在列表中显示),并提供错误Notice: Trying to get property of non-object in view_all.php on line 65
代码的一部分,包括第65行(下拉元素)
$db = $wpdb->get_results('SELECT * FROM wp_before_after ORDER BY ID DESC');
$patientsArray = array();
$proceduresArray = array();
<select id="filterProcedure_dropdown" class="form-control">
<option value="noFilter">Filter by procedure</option>
<?php foreach( $db as $filterProcedure ) {
if($filterProcedure->procedureID != 0) {
if( in_array( get_the_title( $filterProcedure->procedureID ), $proceduresArray ) ) {
continue;
}
$proceduresArray[] = get_the_title( $filterProcedure->procedureID );
}
}
sort( $proceduresArray );
foreach( $proceduresArray as $filterProcedure ) {
var_dump($filterProcedure, OBJECT);
echo '<option value="'.get_page_by_title($filterProcedure, OBJECT)->ID.'">'.get_page_by_title($filterProcedure, OBJECT)->post_title.'</option>'; // LINE 65
} ?>
</select>
所以我想的问题是,为什么页面标题中的&符导致问题,我最好的解决方法是什么?
我在Wordpress Trac https://core.trac.wordpress.org/ticket/25157中发现了这一点 - 据说所有人都说这已得到修复,但很明显它仍然会引起一些问题?我可以以某种方式重新打开这张票吗?
答案 0 :(得分:0)
我认为您需要在调用get_page_by_path
之前清理标题,如下所示:
get_page_by_path(sanitize_title($filterProcedure), OBJECT)->ID