Изменить тип возможности типа сообщения, зарегистрированного плагином

Я использую плагин Пользовательский CSS JS , который регистрирует свой собственный тип сообщения но функция назначается "post".

Я хочу изменить его на "manage_options".

Есть ли правильный способ, не изменяя плагин для этого? Вызов крюка, функция или что-то еще?

public function register_post_type() {

    $labels = array (
        'name'               => _x( 'Custom Code', 'post type general name' ),
        'singular_name'      => _x( 'Custom Code', 'post type singular name' ),
        'menu_name'          => _x( 'Custom CSS & JS', 'admin menu' ),
        'name_admin_bar'     => _x( 'Custom Code', 'add new on admin bar' ),
        'add_new'            => _x( 'Add Custom Code', 'add new' ),
        'add_new_item'       => __( 'Add Custom Code' ),
        'new_item'           => __( 'New Custom Code' ),
        'edit_item'          => __( 'Edit Custom Code' ),
        'view_item'          => __( 'View Custom Code' ),
        'all_items'          => __( 'All Custom Code' ),
        'search_items'       => __( 'Search Custom Code' ),
        'parent_item_colon'  => __( 'Parent Custom Code:' ),
        'not_found'          => __( 'No Custom Code found.' ),
        'not_found_in_trash' => __( 'No Custom Code found in Trash.' ),
    );
    $args   = array (
        'labels'              => $labels,
        'description'         => __( 'Custom CSS and JS code' ),
        'public'              => false,
        'publicly_queryable'  => false,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'menu_position'       => 100,
        'menu_icon'           => 'dashicons-plus-alt',
        'query_var'           => false,
        'rewrite'             => array ( 'slug' => 'custom-css-js' ),
        'capability_type'     => 'post', // <--- I want to manipulate this
        'has_archive'         => true,
        'hierarchical'        => false,
        'exclude_from_search' => true,
        'menu_position'       => null,
        'can_export'          => false,
        'supports'            => array ( 'title' ),
    );

    register_post_type( 'custom-css-js', $args );
}

Вышеуказанный код находится в custom-css-js.php lines 200-239

6 голосов | спросил kybernaut.cz 26 Jpm1000000pmTue, 26 Jan 2016 13:12:52 +030016 2016, 13:12:52

2 ответа


4

@PieterGoosen - это круто, и я все еще бодрствую, как я, и отвечаю, как босс.

Чтобы упростить его код и заставить его работать именно так, без кучи нежелательной информации на вашей странице:

/**
 * Pieter Goosen writes awesome code
 */
add_filter( 'register_post_type_args', 'change_capabilities_of_the_custom_css_js_posttype' , 10, 2 );

function change_capabilities_of_the_custom_css_js_posttype( $args, $post_type ){

 // Do not filter any other post type
 if ( 'custom-css-js' !== $post_type ) {

     // Give other post_types their original arguments
     return $args;

 }

 // Change the capability_type of the "custom-css-js" post_type
 $args['capability_type'] = 'manage_options';

  // Give the custom-css-js post type it's arguments
  return $args;

}

Плагин, который вы выбрали, написан в широком смысле. У него есть некоторые неуверенности.

ответил Nathan Powell 26 Jpm1000000pmTue, 26 Jan 2016 14:23:03 +030016 2016, 14:23:03
5

WordPress 4.4 наконец-то увидел введение register_post_type_args , который вы можете использовать для изменения аргументов, используемых при настраиваемом типе сообщений ( или встроенный тип )

Теперь я не могу закодировать что-либо конкретное, но следующее должно получиться вам

add_filter( 'register_post_type_args', function ( $args, $post_type )
{
    // Only target our specific post type
    if ( 'my_post_type' !== $post_type )
        return $args;

    // OK, we have our specified post type, lets alter our arguments
    ?><pre><?php var_dump( $args ); ?></pre><?php

    // Change capability_type
    $args['capability_type'] = 'some_new_value';

    return $args;
}, 10, 2 );
ответил Pieter Goosen 26 Jpm1000000pmTue, 26 Jan 2016 13:46:16 +030016 2016, 13:46:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132