web-dev-qa-db-ja.com

24の「注目のコンテンツ」はプラグインで行われていますか、それともWP4.0でもはネイティブですか?

Twenty Fourteen がユーザーにそこのウェブサイトで注目のコンテンツを提供するように提供することがわかりました。私はそのような場合のために私自身の小さなスクリプトを書いたので、それは素晴らしいです。しかし、その機能がすでにWPに存在する場合は、それを使用することもできます。

しかし、それがどのように機能するのかを調べるためにTwenty Fourteenのfunctions.phpを調べると、次のようになります。

テーマサポートを追加します。

// Add support for featured content. -- line 108-112
add_theme_support( 'featured-content', array(
    'featured_content_filter' => 'twentyfourteen_get_featured_posts',
    'max_posts' => 6,
) );

次が何をするのかわからない。

// line 132-159
/**
* Getter function for Featured Content Plugin.
 *
 * @since Twenty Fourteen 1.0
 *
 * @return array An array of WP_Post objects.
 */
function twentyfourteen_get_featured_posts() {
    /**
     * Filter the featured posts to return in Twenty Fourteen.
     *
     * @since Twenty Fourteen 1.0
     *
     * @param array|bool $posts Array of featured posts, otherwise false.
     */
    return apply_filters( 'twentyfourteen_get_featured_posts', array() );
}

/**
 * A helper conditional function that returns a boolean value.
 *
 * @since Twenty Fourteen 1.0
 *
 * @return bool Whether there are featured posts.
 */
function twentyfourteen_has_featured_posts() {
    return ! is_paged() && (bool) twentyfourteen_get_featured_posts();
}

注目のコンテンツレイアウトが変更されたテーマに追加されている場合にのみ、jQueryスライダをエンキューします。

// line 251-257
if ( is_front_page() && 'slider' == get_theme_mod( 'featured_content_layout' ) ) {
    wp_enqueue_script( 'twentyfourteen-slider', get_template_directory_uri() . '/js/slider.js', array( 'jquery' ), '20131205', true );
    wp_localize_script( 'twentyfourteen-slider', 'featuredSliderDefaults', array(
        'prevText' => __( 'Previous', 'twentyfourteen' ),
        'nextText' => __( 'Next', 'twentyfourteen' )
    ) );
}

おすすめコンテンツのコア機能を追加します。しかし、どうですか?

// line 507-516
/*
 * Add Featured Content functionality.
 *
 * To overwrite in a plugin, define your own Featured_Content class on or
 * before the 'setup_theme' hook.
 */
if ( ! class_exists( 'Featured_Content' ) && 'plugins.php' !== $GLOBALS['pagenow'] ) {
    require get_template_directory() . '/inc/featured-content.php';
}

上記の質問から明らかになるかもしれませんが、私はこのテーマの中でおすすめコンテンツがどのように機能するのかわかりません。私はJetpackがFeatured Contentを許可することを知っていますが、私はこの機能を開始するプラグインを二十四で見つけることができません。それでは、どのように、二十四はこれを行いますか?注目コンテンツの独自の機能が含まれていますか、それともJetpackからそれを借りましたか?

5
Bram Vanroy

注目のコンテンツはTwentyFourteenテーマの一部であり、プラグインとして実装されているのではなく、タグまたはレイアウトに基づいてGridまたはSliderレイアウトの使用を可能にする外観>カスタマイズ設定(get_theme_mod())として実装されています提供された。

ところで、私はこれを考え出しました あと あなたの投稿を読んでください!それであなたの質問をありがとう、それは私を大いに助けました。

1
senortim