• How difficult or easy would it be to extend this plugin so that staff members can be reordered?

    We want to list staff by their seniority rather than by ID or by their name

    as a simple start it would be great to be able to order the staff in the same way you can order posts.

    a further extension where you are able to give staff a “parent” of some type so that you could not only order the parents but the children within them.

    I know i’m asking for a lot – but this is a great plugin with loads of potential!

    Many thanks

    M

    https://www.ads-software.com/plugins/staff-directory/

Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Author adamtootle

    (@adamtootle)

    I’m brainstorming on a way to reorder staff. I may shoot to have something in the next week or so.

    Thread Starter captinfonz

    (@captinfonz)

    Thanks Adam ??

    ray.pratt

    (@raypratt)

    Has there been any progress on this?

    Thank you.

    Right now, you can order by any of the stuff built into WP_Query using the shortcode:

    [staff-directory orderby="title" order="ASC"]

    For a totally custom order, Custom Post Types support menu order out of the box if you define it as such.

    Since that isn’t already happening when Adam defines the CPT (this is your brainstorming!), you’ll need to add it yourself using add_post_type_support. Drop the following into the functions.php file in your theme (or, if the site has a custom plugin you’re maintaining, it’ll work there, too):

    add_action( 'init', 'unique_prefix_add_staff_order' );
    
    function unique_prefix_add_staff_order() {
    	add_post_type_support( 'staff', 'page-attributes' );
    }

    You should now see “Order” in the right column of the edit staff member page.

    This will allow you to use the orderby and order parameters that Andy built into the plugin to order by menu order:

    [staff-directory orderby="menu_order" order="ASC"]

    If you’re not using the shortcode, but rather using the WordPress post type archives, and are therefore using a PHP template (if you have pretty permalinks on, it’ll be https://mysite.com/staff), you’ll need to make sure that the query is being ordered by menu order. You’ll need to force that yourself using another filter called pre_get_posts:

    add_filter('pre_get_posts', 'unique_prefix_order_by_menu_order');
    
    function unique_prefix_order_by_menu_order($query) {
    	$post_types = array('staff');
    	if($query->is_main_query() && in_array($query->get('post_type'), $post_types)) {
    		$query->set('orderby', 'menu_order');
    		$query->set('order', 'ASC');
    	}
    }

    And those will work as well. Drop that wherever you dropped the add_post_type_support(), but again – only if you aren’t using the shortcode.

    I have resolved this by changing the code to work as follows.
    I added to the shortcode to define a “meta_key” field.
    Eg: [staff-directory cat=44 orderby=meta_value_num order=asc meta_key=order]
    Then added a field called “order” (but it can be anything you want to call it, just change the definition of the meta-key.) The orderby field is then set to “meta_value_num” to order that field numerically.
    In the “order” field enter a number for each person in the order you want them to display. The values do not need to be consecutive.
    The names will be displayed in that order and also, the first time they are displayed, if the “order” values do not start with 10 and increment by 10 they will be adjusted to be so. The advantage of this is that it allows names to be inserted easily in the list. So to insert a name between the names with “order” number 40 and 50, make the new one 45. They’ll all get renumbered on the next public display. This reordering only happens if they are not “normalized” already.
    This only required changes to classes\staff_directory_shortcode.php, but I did change the version number in \staff-directory.php to prevent any update overriding by changes.
    You can download the changed file from here.
    We hope you find this useful, but it is provided as-is, with no guarantee that it will do anything useful, or will not do anything bad.

    Hi Ashdowntech,
    Your solution worked perfectly for me – I copied and applied your code for custom sorting of a client’s some 15/20 staff members. Thank you very much. I’m juster wondering, if you know that your download link is not correct (at the moment). I found it “around the bend” – you didn’t hide it intentionally, did you?

    And thousand thanks to the programmer Adamtootle for the original plugin, of course!

    Hi Austroflyer,

    Very glad it worked out for you.

    We did some site shuffling since I wrote the above, and the link to the ZIP file changed. This is the correct URL: https://client.ashdowntech.com/wp-content/uploads/staff_directory_shortcode.zip

    This is a great and very useful plugin. I needed to sort the officers in my client’s organization based on their position. Not alphabetically, but President first on down to Secretary last. I used ashdowntech’s solution by downloading the edited version of staff-directory.php.

    This solution works perfectly, but I’m concerned that if the plugin is updated, the edit will be lost.

    So, developer, any chance you’ll add this modification to the plugin, or implement a different way to sort members based on other criteria than currently available?

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Reordering staff’ is closed to new replies.