jwp
  • 0
Новичок

Плагин Jetpack (ShareDaddy): Запретить отображение кнопок «Поделиться» в пользовательских типах сообщений?

  • 0

Я заметил, что у ShareDaddy есть «Показать кнопки общего доступа к этому сообщению» для типов сообщений по умолчанию, но не для пользовательских типов сообщений. Я предполагаю, что мне нужно что-то добавить в 'supports' => array('title','editor','thumbnail') . Кто-нибудь знает, что мне нужно добавить, чтобы «Показать кнопки обмена в этом сообщении» отображались для пользовательских типов сообщений?

Share
  1. ShareDaddy либо использует два хука фильтра, либо the_content это the_excerpt означает, что ваш файл шаблона темы пользовательского типа публикации должен использовать одну из этих двух функций 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 на свое фактическое имя пользовательского типа сообщения.

    • 0
  2. Я знаю, что это более старый пост, но я нашел этот сайт при поиске ответа, а затем нашел реальный ответ где-то еще, поэтому я подумал, что поделюсь им со всеми, у кого есть похожая проблема.

    Я создал 2 пользовательских типа сообщений и хотел, чтобы кнопки «Поделиться» в Jetpack отображались.

    Я думал, что это, вероятно, будет код в файле functions.php, так как именно там я получил остальную функциональность для пользовательских типов записей.

    На самом деле, я просто зашел в меню «Настройки» -> «Общий доступ». Пользовательские типы сообщений были в списке, и все, что мне нужно было сделать, это поставить галочку в каждом поле, чтобы все работало так, как я хотел.

    Никакого дополнительного кода, просто галочка.

    • 0
  3. Решение заключается в редактировании jetpack/modules/publicize/publicize.php.

    строка 354 меняется на это

    function post_type_is_publicizeable( $post_type ) {
        if ( 'Your_custom_post' == $post_type )
            return true;
        if ( 'post' == $post_type )
            return true;
    
        return post_type_supports( $post_type, 'publicize' );
    }
    
    • 0

Оставить ответ

You must login to add an answer.