Навигация по многосайтовому сайту, wpdb-> подготовить отсутствующий аргумент
Я использую WordPress Multi-site для размещения нескольких сайтов в одной установке WP
Я хотел бы иметь навигацию, показывающую каждый сайт со ссылкой на сайт.
Я использую эту функцию, чтобы сделать это
<?php
$bcount = get_blog_count();
global $wpdb;
$blogs = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->blogs WHERE spam = '0' AND deleted = '0' and archived = '0' and public='1'"));
if(!empty($blogs)){
?>
<ul class="nav navbar-nav">
<li class="portalHome"><a href="dashboard.html">
<i class="fa fa-home"></i>
<i class="fa fa-chevron-right pull-right chervonMobNav"></i></a></li>
<?php
foreach($blogs as $blog){
$details = get_blog_details($blog->blog_id);
if($details != false){
$addr = $details->siteurl;
$name = $details->blogname;
if(!(($blog->blog_id == 1)&&($show_main != 1))){
?>
<li class="menu-item<?php if($counter == get_current_blog_id()){ echo ' current-menu-item';}?>">
<a href="<?php echo $addr; ?>"><?php echo $name;?> <i class="fa fa-chevron-right pull-right chervonMobNav"></i></a>
</li>
<?php
}
}
}
?></ul><?php
}
?>
Это работает, но я также получаю ошибку
Warning: Missing argument 2 for wpdb::prepare()
Каким должен быть второй аргумент для wpdb::prepare()
1 ответ
Решение
$wpdb->prepare работает в php как sprintf
Пример из php.net
$ num = 5; $ location = 'tree';
$ format = 'В% s' есть% d обезьян;
echo sprintf ($ format, $ num, $ location);
В вашем запросе нет строки форматирования, поэтому вы можете выполнить запрос следующим образом:
$ blogs = $ wpdb-> get_results ("SELECT * FROM $ wpdb-> blogs WHERE spam = '0' AND удалено = '0' и заархивировано = '0' и public='1'");