如何延长团队成员的排序顺序

yun*_*zen 5 wordpress wordpress-theming wordpress-5

我使用商务贵宾室主题通过RT主题与Elementor。

WordPress版本为最新版本(5.2.1)

在团队页面上(演示:https : //businesslounge-demo.rtthemes.com/our-team/),列出了团队成员的卡片。我想将团队成员的顺序更改为当前无法选择的选项。

团队成员列表使用简码完成 [staff_box]

在Elementor编辑模式下,我看起来像这样:
在此处输入图片说明

编辑:

编辑表单在
wp-content/plugins/businesslounge-extensions/inc/elementor-addons/staff.php

<?php
namespace Elementor;
// ...
class Widget_RT_Staff extends Widget_Base {
  // ...
  protected function _register_controls() {
    // ...
    $this->add_control(
      'list_orderby',
        [
          'label'     => esc_html_x( 'List Order By', 'Admin Panel','businesslounge' ),
          'description' => esc_html_x('Sorts the posts by this parameter', 'Admin Panel','businesslounge' ),    
          'type'      =>  Controls_Manager::SELECT,
          'default'    =>  "date",
          "options"    => array(
            'date' => esc_html_x('Date',"Admin Panel","businesslounge"),
            'author' => esc_html_x('Author',"Admin Panel","businesslounge"),
            'title' => esc_html_x('Title',"Admin Panel","businesslounge"),
            'modified' => esc_html_x('Modified',"Admin Panel","businesslounge"),
            'ID' => esc_html_x('ID',"Admin Panel","businesslounge"),
            'rand' => esc_html_x('Randomized',"Admin Panel","businesslounge"),                                  
          )
        ]
      );     
      // ...
  }
  // ...
}

Plugin::instance()->widgets_manager->register_widget_type( new Widget_RT_Staff() );
Run Code Online (Sandbox Code Playgroud) 像这样,在“ wp-content / plugins / businesslounge-extensions / inc / editor / staff_box.php”中定义了编辑表单
<?php
vc_map(
    array(
        'base'        => 'staff_box',
        'name'        => _x( 'Team', 'Admin Panel','businesslounge' ),
        'icon'        => 'rt_theme rt_team',
        'category'    => array(_x( 'Content', 'Admin Panel','businesslounge' ), _x( 'Theme Addons', 'Admin Panel','businesslounge' )),
        'description' => _x( 'Displays team members', 'Admin Panel','businesslounge' ),
        'params'      => array(
// ...    
          array(
            'param_name'  => 'list_orderby',
            'heading'     => _x( 'List Order By', 'Admin Panel','businesslounge' ),
            "description" => _x("Sorts the posts by this parameter",'Admin Panel','businesslounge'),
            'type'        => 'dropdown',
            "value"       => array(
                                _x('Date','Admin Panel','businesslounge') => 'date',
                                _x('Author','Admin Panel','businesslounge') => 'author',
                                _x('Title','Admin Panel','businesslounge') => 'title',
                                _x('Modified','Admin Panel','businesslounge') => 'modified',
                                _x('ID','Admin Panel','businesslounge') => 'ID',
                                _x('Randomized','Admin Panel','businesslounge') => 'rand',
                            ),
            'save_always' => true
        ),
// ...
Run Code Online (Sandbox Code Playgroud)

输出定义在
wp-content/plugins/businesslounge-extensions/inc/shortcodes/staff_box.php

像这样:

<?php
function rt_staff( $atts, $content = null ) { 
// ...

    //defaults
    extract(shortcode_atts(array(  
        "id"           => 'staff-'.rand(100000, 1000000), 
        "class"        => "", 
        "list_layout"  => "1/1", 
        "list_orderby" => "date",
        "list_order"   => "DESC",
        "ids"          => array(),
        "box_style"    => ""        
    ), $atts));

// ...

    //general query
    $args=array( 
        'post_status'    => 'publish',
        'post_type'      => 'staff',
        'orderby'        => $list_orderby,
        'order'          => $list_order,
        'showposts'      => 1000                                                            
    );
// ...
    $theQuery = query_posts($args);
// ...
Run Code Online (Sandbox Code Playgroud)

我想做什么:'post_name'在选择框中添加一个选项,以便我可以按不同的字段对团队进行排序。我要添加 'Post name' => 'post_name',

如何在不更改原始源代码的情况下执行此操作?
我已经激活了business_lounge主题的子主题。
我需要为此自定义扩展程序吗?

小智 0

您应该能够通过“覆盖”此处描述的功能来修改您的插件,而不会失去更新能力:

/sf/answers/2859933821/

在子主题的functions.php中复制该函数,自定义并重命名它,使用它代替原始函数。

希望它会有所帮助