2

これは奇妙な質問かもしれません。Facebook Like Button や Gigpress などのプラグインを追加すると、単一ページのブログ投稿の前後にコンテンツを挿入するオプションが提供されます。たとえば、投稿のテキストの下にコンテンツを追加するように Gigpress と FB Like ボタンの両方を設定しましたが、不完全ではありますが、機能しています。いいねボタンは投稿テキストの下に表示されます。

では、これはバックエンドでどのように達成されるのでしょうか? テンプレートやその他の php ファイルがプラグインによって変更されているようには見えませんが、データを取り込む明らかな php コードもないようです。このタイプの機能は何らかの形で「フレームワーク」に組み込まれていますか?

私が尋ねている理由は、書式設定上の理由によるものです... 2 つのプラグインによって追加されたコンテンツが競合し、見栄えが悪くなります。cssの修正方法を調べてみました。

ありがとう

4

1 に答える 1

7

彼らはFiltersActions 、およびそれらへのフックでそれを達成しています。

あなたの場合-the_contentフィルター付き..

例(コーデックスから):

add_filter( 'the_content', 'my_the_content_filter', 20 );
/**
 * Add a icon to the beginning of every post page.
 *
 * @uses is_single()
 */
function my_the_content_filter( $content ) {

    if ( is_single() )
        // Add image to the beginning of each page
        $content = sprintf(
            '<img class="post-icon" src="%s/images/post_icon.png" alt="Post icon" title=""/>%s',
            get_bloginfo( 'stylesheet_directory' ),
            $content
        );

    // Returns the content.
    return $content;
}

わかりやすい例:

 add_filter( 'the_content', 'add_something_to_content_filter', 20 );


 function add_something_to_content_filter( $content ) {

            $original_content = $content ; // preserve the original ...
            $add_before_content =  ' This will be added before the content.. ' ;
            $add_after_content =  ' This will be added after the content.. ' ;
            $content = $add_before_content . $original_content  . $add_after_content ;

        // Returns the content.
        return $content;
    }

この例の動作を確認するには、functions.php に入れてください。

これは実際、wordpress を理解し、プラグインを書き始めるための最も重要なステップです。本当に興味がある場合は、上記のリンクを読んでください。

また、先ほど言及したプラグイン ファイルを開き、 フィルターアクションを探します...

于 2013-10-05T18:59:51.890 に答える