web-dev-qa-db-ja.com

[wordpress_social_login]ショートコードが埋め込まれた場所に表示するように強制します

WordPress Social Login プラグインには、投稿やページで使用できる[wordpress_social_login]ショートコードが含まれています。問題は、投稿の本文のどこに配置しても、常にページの最初に表示されることです。私はSalientテーマを使用していて、それをレンダリングするように思われるwsl_render_login_form()と呼ばれるプラグイン関数の1つを通して調べてきましたが、それがどのように最初にそれをページに配置するかは明らかではありません。

ショートコードを実際に配置した場所にレンダリングする方法を教えてください。これがデフォルトであるべきだと思われますが、それは厄介なことではありません。

1
Adam

時期尚早の出力を防ぐために変更することができない関数がある場合でも、ショートコードハンドラをオーバーライドできます。

add_shortcode( 'wordpress_social_login', 'wordpress_social_login_fix' );

function wordpress_social_login_fix( $attributes, $content ) {
    ob_start();
    wsl_render_login_form();
    return ob_get_clean();
}
3
fuxia