1

私はWordpressを使用しています自動提案このコードスニペットの使用

現在はすべてのタグを検索していますが、投稿タイトルのみを検索したいのですが。どんな助けでも大歓迎です。

これは、すべての投稿に対して変更する必要があるすべてのタグを呼び出すSQLクエリです。

 <?php global $wpdb;
 $search_tags = $wpdb->get_results("SELECT name from wp_terms WHERE name LIKE '$search%'");
 foreach ($search_tags as $mytag)
   {
     echo $mytag->name. " "; 
   }
  ?>
4

3 に答える 3

3

最近、ワードプレスのテーマでいくつかのリクエストを行う必要がありました。あなたの場合(リンクの例のように、タグを取得するよりもタイトルを取得する方が簡単です)、物事は簡単に行うことができます(推測します)。

まず、投稿を取得するための php ページを作成する必要があります。ご存じかもしれませんが、スタンドアロンの php ファイルでは wp を使用できないため、ファイル ( get_posts.phpと呼びます) は次のようになります。

<?php
  // Include the file above for being able to use php stuff
  // In my case this file was in a folder inside my theme ( my_theme/custom_stuff/get_posts.php ).
  // According to this file position you can modify below path to achieve wp-blog-header.php from wp root folder
  include( '../../../../wp-blog-header.php' ); 

  // Get all published posts. 
  $list_posts = get_posts( array( 'numberposts' => -1 ) );

  // Get "q" parameter from plugin
  $typing = strtolower( $_GET["q"] );

  //Save all titles
  $list_titles = array();
  foreach( $list_posts as $post ) { $list_titles[] = $post->post_title; }

  // To see more about this part check search.php from example
  foreach( $list_titles as $title ) {
    if( strpos( strtolower( $title ), $typing ) ){
      echo $title;
    }
  }

?>

私はあなたをよりよく助けるためにいくつかのコメントを追加しました.

簡単になりました。次のような jQuery プラグインを介してページを呼び出すだけです。

$('#yourInput').autocomplete( "path_to/get_posts.php" );
于 2012-12-26T00:33:41.763 に答える
2

wordpressのビルド機能を直接使用して、すべての投稿タイトルを取得できます

// The Query
query_posts( 'posts_per_page=-1' );

// The Loop
while ( have_posts() ) : the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;
于 2012-10-06T08:44:53.960 に答える