Make WordPress Core

Opened 9 years ago

Last modified 2 weeks ago

#39106 assigned enhancement

Make hierarchy level indicator text changeable [WP List]

Reported by: gkloveweb's profile gk.loveweb Owned by:
Milestone: Future Release Priority: low
Severity: minor Version: 4.6.1
Component: Posts, Post Types Keywords: good-first-bug has-patch has-unit-tests
Focuses: ui, administration Cc:

Description

In WP_Posts_List_Table class, dashes(—) used to indicate the hierarchy level of post item, which is not changeble by any filter, we can add a new filter to replace this string.

$pad = str_repeat( '— ', $this->current_level );

https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-posts-list-table.php#L918-L919

Source: http://wordpress.stackexchange.com/questions/248405/replace-dashes-before-title-in-page-list

Attachments (2)

39106.patch (1.1 KB) - added by rebasaurus 6 years ago.
Adding filter 'post_title_child_separator'
39106.diff (998 bytes) - added by mayankmajeji 6 years ago.
39106.diff

Download all attachments as: .zip

Change History (11)

#1 @gk.loveweb
9 years ago

  • Type changed from feature request to defect (bug)

#2 @valentinbora
6 years ago

  • Keywords good-first-bug needs-patch added
  • Milestone changed from Awaiting Review to Future Release
  • Owner set to valentinbora
  • Priority changed from normal to low
  • Severity changed from normal to minor
  • Status changed from new to accepted
  • Type changed from defect (bug) to enhancement

#3 @valentinbora
6 years ago

  • Component changed from Administration to Posts, Post Types
  • Owner valentinbora deleted
  • Status changed from accepted to assigned

Thanks for the ticket @gkloveweb. I believe it makes sense to allow this to be tweakable so I've marked it accordingly.

It also seems like an easy to do change, so I've marked it as good-first-bug for new contributors to tackle.

@rebasaurus
6 years ago

Adding filter 'post_title_child_separator'

#4 @rebasaurus
6 years ago

  • Keywords has-patch added; needs-patch removed

#5 @seanchayes
6 years ago

I downloaded and tested this patch.

It worked as expected and I was easily able to change the separator used for the hierarchy post separator by adding the filter to my functions.php and trying out different combinations.

One code change I would suggest is to rename name the variable used from $pad to $separator - as I believe this would more closely match the name of the suggested filter naming.

@mayankmajeji
6 years ago

39106.diff

#6 @mayankmajeji
6 years ago

I completely agree with @seanchayes and changed $pad to $separator as it makes more sense and semantically correct. I also cross-checked for the conflicts and find zero conflicts.

#7 @10010110
5 years ago

I would suggest an even simpler fix without the need of a filter: just add an element around the character so that it can be accessed by a CSS selector, and have the user add custom admin CSS to hide it (or whatever), like so:

$pad = str_repeat( '<span class="dash">&#8212; </span>', $this->current_level );

This ticket was mentioned in PR #11469 on WordPress/wordpress-develop by @iampi20.


2 weeks ago
#8

  • Keywords has-unit-tests added

## Summary

WP_Posts_List_Table::column_title() built the hierarchical indent with a hardcoded em dash string repeated per level. This adds a filter — post_title_child_separator — so the per-level separator can be changed while preserving default output (&#8212; ) when the filter is not used.

Props rebasaurus, mayankmajeji, and seanchayes for earlier patches and discussion on the ticket.

## Testing

  • phpunit (filtered): post_title_child_separator in tests/phpunit/tests/admin/wpPostsListTable.php

Trac ticket: https://core.trac.wordpress.org/ticket/39106

## Use of AI Tools

AI assistance: Yes
Tool(s): Cursor (AI-assisted editor)
Used for: Implementation and PHPUnit coverage; I reviewed the result and ran tests locally before opening this PR.

This ticket was mentioned in PR #11481 on WordPress/wordpress-develop by @vijendrajat.


2 weeks ago
#9

Introduces the post_title_child_separator filter in WP_Posts_List_Table::column_title(), allowing the hardcoded em-dash hierarchy indicator to be replaced with a custom string. The separator string is passed through the filter once and then repeated per hierarchy level.

Renames the internal $pad variable to $separator for clarity.

Trac ticket: https://core.trac.wordpress.org/ticket/39106

## Use of AI Tools

Note: See TracTickets for help on using tickets.