0

\d は psql でのみ機能することを知っています。psql -E を使用して、\d の実装に使用される実際の SQL クエリを確認できます。

これが私の例です

\d foo_table
********* QUERY **********
SELECT c.oid,
  n.nspname,
  c.relname
FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname ~ '^(foo_table)$'
  AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 2, 3;
**************************

********* QUERY **********
SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, c.relhastriggers,        
c.relhasoids, '', c.reltablespace
FROM pg_catalog.pg_class c
 LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)
WHERE c.oid = '16386'

**************************

********* QUERY **********
SELECT a.attname,
  pg_catalog.format_type(a.atttypid, a.atttypmod),
  (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
   FROM pg_catalog.pg_attrdef d
   WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),
  a.attnotnull, a.attnum
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = '16386' AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
**************************

********* QUERY **********
SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i 
WHERE c.oid=i.inhparent AND i.inhrelid = '16386' ORDER BY inhseqno
**************************

複数のクエリがあり、そのうちのいくつかは「;」で終わります そしてそれらのいくつかはそうではありません。私は完全に混乱しています。「\d」と同じことを行うには、PHP でどのクエリを使用すればよいですか?


各カスタム投稿のワードプレス サイドバー

カスタム投稿タイプの各投稿にサイドバーを追加するようにワードプレスを取得しようとしています。そのため、ウィジェット エリアに移動すると、ポートフォリオと名付けたカスタム投稿タイプの投稿と同じ数のサイドバーが必要になります。

これは私が使用しているコードですが、タイトルのないサイドバーが 1 つしか表示されません。

更新: コードにグローバル $posts を追加したところ、サイドバーが表示されるようになり、the_title() を get_the_title() に変更しました。今、それは働いています。以下の完全なコード。誰かがより良い解決策を持っている場合は、私に知らせてください。

function the_slug() {
    $post_data = get_post($post->ID, ARRAY_A);
    $slug = $post_data['post_name'];
    return $slug; 
}

add_action( 'init', 'portfolios_sidebars' );
/**
 * Create widgetized sidebars for each portfolio
 *
 * This function is attached to the 'init' action hook.
 */

function portfolios_sidebars() {
    $args = array( 'post_type' => 'portfolios', 'numberposts' => -1, 'post_status' => 'publish'); 
    $portfolios = get_posts( $args );
    global $post;
    if ($portfolios) {
        foreach ( $portfolios as $post ) {
            setup_postdata($post);
            $portfoliotitle = get_the_title();
            $portfolioslug = the_slug();
            register_sidebar( array(
                'name' => $portfoliotitle,
                'id' => $portfolioslug . '-sidebar',
                'description' => 'This is the ' . $portfoliotitle . ' widgetized area',
                'before_widget' => '<aside id="%1$s" class="widget %2$s" role="complementary">',
                'after_widget' => '</aside>',
                'before_title' => '<h4 class="widget-title">',
                'after_title' => '</h4>',
            ) );
        }
        wp_reset_postdata();
    }
}
4

1 に答える 1

1

幸いなことに、私は答えを見つけました。 http://www.linuxscrew.com/2009/07/03/postgresql-show-tables-show-databases-show-columns/

于 2012-11-23T01:26:06.637 に答える