0

post-plain-body渡された投稿のタイトルと本文を印刷するというページ テンプレートがあります。という名前のページAjaxLoaderは、このテンプレートを使用しています。たとえば、値として呼び出す/ajaxloaderと、その投稿の内容が表示されます。id$_POST['id']

これは、メイン ページで jQuery を介して呼び出されます。投稿/ページのコンテンツを特定のコンテキストに実際にロードします。

ロードしたページの 1 つにContact Form 7フォームが含まれています。フォームは表示されますが、送信すると、/ajaxloader/#wpcf7-f2-p34-o1Ajax を使用してフォームを検証する代わりにフォームが表示されます。

ページのテンプレートです。

<?php
/*
Template Name: Ajax Loader
*/

// Load contact form 7 scripts
if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
    wpcf7_enqueue_scripts();
    wpcf7_enqueue_styles();
}

// Gets the content only from a post. Used in ajax loading
if(isset($_POST['id'])):
    $post = get_post($_POST['id']);
    if ($post) : setup_postdata($post); 
        ?>
        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
            <h2><?php the_title(); ?></h2>
            <?php the_content(); ?>
        </div><?php
    endif;
else:?>
    <h2>Page not found</h2><?php
endif;
?>

そして、コンテンツをロードしているjQueryは次のとおりです

function load_page(pid) {
    $("#page_preview").load("ajaxloader/", {id:pid},function(){
        $('#page_preview').fadeIn(300);
        $('#page_loading').hide();
    });
}

編集

が Contact Form 7 スクリプトに添付され<form>ていません。firebugでjavascriptデバッグを使用してこれを見つけました。通常、イベントには 2 つのハンドラーが関連付けられている必要がclickありsubmitます。添付されていない理由はありますか?

4

3 に答える 3

0

解決策を見つけました。誰かにとっては些細なことに思えるかもしれませんが、とにかく共有する必要があると思いました.

Ajax を使用してコンテンツのみ (ヘッダー、サイドバーなどなし) をロードするために使用するページ テンプレートで、次の操作を行います。

  1. 追加wp_head();
  2. ページ テンプレートを追加します (上記の質問のように)
  3. wp_footer();一番下に追加

誰かが手順に関する詳細情報を持っている場合は、貢献してください:)

于 2011-09-14T09:36:55.377 に答える
0

送信時に関数をcontact-form-7呼び出しているようです。load_page()を呼び出しているイベント ハンドラーをどのように定義したかを確認することをお勧めしますload_page()

contact form 7また、同じ名前の関数を使用してload_page()競合を引き起こしている可能性もあります。

jsfiddle で重み付けされたバージョンを提供してください。

于 2011-09-14T08:35:14.337 に答える