web-dev-qa-db-ja.com

MysqlテーブルからWordpressサイトの投稿とページにデータを表示する

私はWord pressを使い始めて私はphpmyadminのテーブルを持っています。このテーブルには私のWordプレスサイトのさまざまな投稿やページに表示したいデータがあります。私はいろいろ調べて、Allow PHP in Post and Pagesという名前のプラグインを思いつきました。このプラグインを使えば、投稿やページにphpスクリプトを書くことができます。私は自分のページの投稿で小さなコードを試してみましたが、表示されるのはResource id #147ですが、欲しい結果は得られませんでした。これは私が私の投稿の一つで試したコードです。

[php]
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("ahadith");
$query = mysql_query("SELECT * FROM muslim");
echo ($query);
[/php]

これを手伝ってくれる人はいますか。または、データベースから目的のデータを取得してWordのプレスサイトに表示する方法もあります。ありがとうございました。

1
Salik Asad

WordPressの準備ができ、デフォルトで接続されている間にデータベースに接続することを忘れてください。 DB固有のタスクのwpdbクラスの後に移動します。

まず、dbクラスであるグローバル $wpdb 変数を呼び出してから、いくつかのメソッドを使用して特定のカスタムテーブルをクエリします。

テーブル構造がわからない?最初に説明してください:

global $wpdb;
$table = $wpdb->prefix . "muslim";
$query = $wpdb->get_results( "DESCRIBE $table" );
echo var_dump ( $query );

次の表から結果を選択します。

global $wpdb;
$table = $wpdb->prefix . "muslim";
$results = $wpdb->get_results( "SELECT * FROM $table" );
echo var_dump ( $results );

テーブルmuslimは準備ができており、正しく追加されていると想定しています。右?

前のTweakから結果が得られたとしましょう。適切なループを使用してそれらを繰り返し処理できます。

これをカスタムショートコードに保存して、あなたが述べたように投稿/ページで使用することができます。 ショートコードの仕組み

add_shortcode('wpse_233021_shortcode', function(){
    global $wpdb;
    $table = $wpdb->prefix . "muslim";
    $results = $wpdb->get_results( "SELECT * FROM $table" );
    ob_start();
    echo var_dump( $results );
    return ob_get_clean(); // or iterate through and put into an HTML table
});

ページ/投稿コンテンツに挿入するための、この[wpse_233021_shortcode]があります。

それが機能したと仮定すると、不要なときは常にDBを呼び出さないでください。データ更新時にデータをキャッシュしてキャッシュを破棄するか、特定の遅延でトランジェントが期限切れになるようにしてください.1週間、おそらく Transients API キャッシングの場合、非常に明確でシンプルであり、非永続キャッシングに非常に効果的です

1
Samuel Elh