web-dev-qa-db-ja.com

Jetpackプラグイン(ShareDaddy):カスタム投稿タイプに共有ボタンが表示されないようにする

ShareDaddyにはデフォルトの投稿タイプ用の「この投稿に共有ボタンを表示する」がありますが、カスタム投稿タイプにはありません。 'supports' => array('title','editor','thumbnail')に何か追加する必要があると思います。カスタム投稿タイプに[この投稿に共有ボタンを表示]を表示するために追加する必要があるものを誰かが知っていますか?

3
jwp

ShareDaddyはthe_contentまたはthe_excerptの2つのフィルタフックを使用します。これは、カスタム投稿タイプのテーマテンプレートファイルで、これら2つの関数のいずれかthe_content();またはthe_excerpt();を使用する必要があることを意味します。

更新

わかりました私は質問をしなかったと思います。メタボックスをカスタム投稿タイプに追加するには、これを追加します。

// Hook things in, late enough so that add_meta_box() is defined and make sure you already registered you post type.
    if (is_admin()){
        add_action( 'admin_init', 'add_plugin_meta_boxes' );
        add_action( 'save_post', 'save_sharing_box' );
    }

// This function tells WP to add the sharing "meta box"
function add_plugin_meta_boxes() {
    add_meta_box( 'sharing_meta', __( 'Sharing', 'sharedaddy' ), 'sharing_meta_box_content', 'CUSTOM POST TYPE NAME', 'advanced', 'high' );

}

function save_sharing_box( $post_id ) {
    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
        return $post_id;

    // Record sharing disable
    if ( 'CUSTOM POST TYPE NAME' == $_POST['post_type'] ) {
        if ( current_user_can( 'edit_post', $post_id ) ) {
            if ( isset( $_POST['sharing_status_hidden'] ) ) {
                if ( !isset( $_POST['enable_post_sharing'] ) )
                    update_post_meta( $post_id, 'sharing_disabled', 1 );
                else
                    delete_post_meta( $post_id, 'sharing_disabled' );
            }
        }
    }

  return $post_id;
}

CUSTOM POST TYPE NAMEを実際のカスタム投稿タイプ名に変更します。

2
Bainternet

私はこれが古い投稿であることを知っています、しかし、私は答えを捜すときこのサイトを見つけて、それからどこか他のところで本当の答えを見つけました。

私は2つのカスタム投稿タイプを作成し、Jetpackの[共有]ボタンを表示させたかった。

私はそれがおそらくfunctions.phpファイルの中のコードであろうと思った、それが私がカスタムポストタイプのための機能性の残りを手に入れたところであるので。

実際、私は単にSettings-> Sharingメニューに行きました。カスタム投稿タイプがリストにあり、私がしなければならなかったのは私が望んだようにそれを動作させるために各ボックスにチェックを入れることだけでした。

余分なコーディングは不要で、単純なチェックマークだけです。

5
Mark