Jetpack插件(共享爸爸):阻止共享按钮显示在自定义帖子类型上?

时间:2011-03-28 作者:jwp

我注意到ShareDaddy有“显示此帖子上的共享按钮”用于默认帖子类型,但不用于自定义帖子类型。我想我需要添加一些内容\'supports\' => array(\'title\',\'editor\',\'thumbnail\'). 有人知道我需要添加什么才能显示自定义帖子类型的“显示此帖子上的共享按钮”吗?

3 个回复
最合适的回答,由SO网友:Bainternet 整理而成

ShareDaddy使用两个过滤器挂钩the_contentthe_excerpt 这意味着您的自定义帖子类型主题模板文件必须使用这两个函数之一the_content();the_excerpt();.

更新

好的,我想我没有回答这个问题。因此,要将metabox添加到自定义帖子类型,请添加以下内容:

// 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 给您实际的自定义帖子类型名称。

SO网友:Mark

我知道这是一篇比较老的帖子,但我在搜索答案时找到了这个网站,然后在其他地方找到了真正的答案,所以我想我会把它分享给其他有类似问题的人。

我创建了2个自定义帖子类型,并希望Jetpack中的共享按钮显示出来。

我想它可能是函数中的一个代码。php文件,因为我从中获得了自定义Post类型的其余功能。

事实上,我只是进入了设置->共享菜单。自定义帖子类型在列表中,我所需要做的就是在每个框中打一个复选框,使其按我想要的方式工作。

没有额外的编码,只是一个简单的复选标记。

SO网友:user49464

解决方案是编辑jetpack/modules/publication/publication。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\' );
}

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?