WordPress MW WP Formの投稿IDをスラッグから取得する関数

お問い合わせフォーム作成プラグイン「MW WP Form」で問い合わせフォームを作成してサイト運営する際、本番環境とテスト環境でIDが異なり困ることがあります。

今回は、運用ルール上フォームのスラッグを決めて指定したスラッグ(MW WP Form のもの)から投稿IDを取得する関数を書いて行きます。

MW WP Form の投稿IDをスラッグから取得する関数

$wpdb で MW WP Form の投稿タイプ(mw-wp-form)を指定してフォームの投稿IDを取得する関数を用意してみました。

/**
 * MW WP Form の投稿IDをスラッグから取得する関数
 */
function ag_get_mwwpform_id($slug='')
{   
    global $wpdb;
    $table = $wpdb->prefix.'posts';      
    
    $query  = "SELECT * FROM $table WHERE post_type='mw-wp-form' AND post_status='publish' AND post_name= %s";
    $result = $wpdb->get_row( $wpdb->prepare( $query, $slug) );

    return (int)$result->ID;
    
}

呼び出し箇所で以下のようにスラッグをして指定してショートコードを展開してフォームを表示させます。

<?php echo do_shortcode('[mwform_formkey key="'.ag_get_mwwpform_id('contact_test').'"]'); ?>

動作環境情報

エックスサーバー(x10)
PHP 7.3.14
MySQL 5.7
WordPress 5.4
MW WP Form 4.2.0

コメント

タイトルとURLをコピーしました