0

Wordpress マルチサイトを使用して、1 つの 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() の 2 番目の引数は何にする必要がありますか

4

1 に答える 1

2

$wpdb->prepare は php で sprintf として動作しています

php.net の例

$num = 5; $location = 'ツリー';

$format = '%s には %d 匹のサルがいます';

echo sprintf($format, $num, $location);

クエリにはフォーマット文字列がないため、次のようにクエリを実行できます。

$blogs = $wpdb->get_results("SELECT * FROM $wpdb->blogs WHERE spam = '0' AND deleted = '0' and archived = '0' and public='1'");

于 2014-09-17T09:56:41.373 に答える