[wp-trac] [WordPress Trac] #46763: Improve plugin search results with already active plugins
WordPress Trac
noreply at wordpress.org
Thu Apr 4 05:19:03 UTC 2019
#46763: Improve plugin search results with already active plugins
-------------------------+---------------------------------
Reporter: joostdevalk | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Plugins | Version:
Severity: normal | Resolution:
Keywords: | Focuses: ui, administration
-------------------------+---------------------------------
Comment (by timph):
> The disabled "Active" button there is not very useful, as it doesn't
provide any context as to why that button is disabled. I'd like to propose
a change: let's turn this into two separate groups of results, one that
says "these plugins you already have installed might be able to help" and
then a second group below that with other plugins.
I think it does provide context pretty directly. It says "Active". In
context of all the other plugin cards that say "Install Now" or for
plugins not active but installed "Activate".
I do agree they could stand out better. These are some additional
thoughts on the topics discussed:
1. Whatever is decided should also remove the "Recommended" plugins tab
from this area. This harms the WordPress ecosystem, and makes it nearly
impossible for other plugin authors to be successful in various aspects.
I think the idea of a "Recommended" tab is a GREAT idea though. This
recommended tab should be driven 100% by the THEMES and PLUGINS a user has
DECIDED to install and activate on their site. If they don't have any
plugins, and the theme they have activated doesn't recommend any, then no
recommended tab should be displayed. This is an entirely biased section,
and offers no way for authors to achieve placement there. It's also clear
not recommended plugins for what a user has installed or needs, it's
opinionated and in many cases irrelevant suggestions. This would resolve
the lack of a way for plugins and themes to recommend or require
dependencies (by that I mean other packages in the WP ecosystem, which
right now I call plugins, but could include blocks as this would be a new
"type" of package as well). Right now plugins and themes recommend things
in non-standard ways, there's constant confusion as to what can and can't
be done, common questions are asked about including external .zips outside
of the WP repo, and all of these things collectively make a horrible user
experience. When you have a theme and 5 plugins all prompting you to
install things in various disjointed ways - it's a problem. Despite the
fact this is true, and known - I would not expect this to actually be
considered as everyone capable of making something like this happen is
firmly placed in a nice position on that page, but one day - I hope this
will change. It's really a picture perfect thing that should change in
core as it benefits everyone - it makes the page relevant to new users,
users who are more advanced, and at the same time solves issues for
developers and plugin/theme authors.
2. Installed plugins could stand out better in search results. The quick
solution seems to be just add an active class for plugin cards that are
installed and active. Add an inactive class to plugin cards installed but
not active. Style them accordingly. This could be handled by core.
3. The whole premise of installed and active plugins recommending features
based on searches contextually, that really doesn't seem like it has
anything to do with core. How would core dictate in a reliable fashion to
know "what" features a plugin supports reliably?
This doesn't make any sense... My answer to that would just be the same
as probably everyone else's: "We could provide hooks and filters allowing
plugins to provide that information". These already exist. The only thing
that is in place preventing any of this behavior from happening are the
rules as to what plugins (and themes) can do. You can specify the
features you support by adding tags, putting relevant information in your
description, short description, changelogs (apparently this is a thing now
too), and other fields as you see fit inside of your `readme.txt` file.
The algorithm from the API side determines the order of the results. If
your plugin is relevant to the search query, then it's returned. If it's
a better match, it's ranked higher based on the criteria from that side of
things. Anything done further and outside of this ''IS'' manipulating the
search data for preferential treatment and/or display of this data. If
it's determined that "Installed and Active" plugins should be sorted above
others or separated out, this should be done on the API side, and
installed and active plugins should be passed along in the request.
4. I don't think there's anything wrong with the result's data - and the
only thing I glean from this so far is that everyone is in agreement that
the cards could be better styled like mentioned in 1 above. There's some
discrepancies with ordering, but I think 2. pretty much makes sense as to
what should be expected from the API. I do think there's other ways of
handling all of this, and would be interested to see some alternative
ideas presented and mockups. I can't say there's better ways or worse
ways, but there's not much involved to take route 2 mentioned above.
Quick and painless, but it's really only a tiny visual change when there's
probably more to it than that. For instance, if one of the root problems
described is the fact that people are viewing the search results, and are
having problems identifying the results that aren't relevant to them
because they already have the items installed and activated - what
actually exists today? We identified there's already some stuff present
for showing which ones are installed and installed and active - and it
seems like everyone is in agreement this could be more effectively
highlighted. There is however an entire interface in a different view
which presents nearly all the same data in a less "pretty" way. Maybe a
solution could be made that combines the "Installed Plugins" and "Plugins
> Add New" pages. It could have a list that persists of installed
plugins, and gets filtered out by your query for searching for new ones
all in the same interface. Taking the concept of the "smaller" plugin-
cards shown in slack - this could be a way to combine the redundant logic
between these two sections. They both offer functionality to activate,
deactivate, and update plugins, they offer descriptions, versions etc.
The "add new" button at the top of the "Installed Plugins" page is a weird
journey for a user anyways, and this seems to only be unique to themes and
plugins "installed" pages. Both of these areas could be reduced and more
effectively presented. This could also be an opportunity to start
bringing forth the modern stack adopted for "major" UI changes in core.
The new interface could be implemented using react, and bring more
unification to the overall codebase. If anything it could help attract
more people into using, learning and understanding React since this could
be a feature utilizing the technology that solely exists in core outside
of context of the editor. I assume given the overall roadmap of
Gutenberg, this would be a beneficial direction to start driving towards.
@jb510 said:
> I outlined that I think fulfilling that in a helpful way would be for
search results for active plugins to be highlighted and customizable by
plugins, but that they should remain in the order they appear in search.
and also:
> As a bonus, already installed plugins could customize their design
and/or copy, as long as it stuck within the current search result wrapper.
This already exists. All plugin cards have the `plugin-card-$slug` class
applied. Installed and active plugins can enqueue styles in the admin
area. There's filters for the search query, data that has been extracted
from the readmes, etc. Not sure what else should be done to go further.
I think the only barring limitation right now is that there are guidelines
and rules for what plugins(and themes) can do. You can get into overly
complex style rules, plugins that take styling this area a bit TOO far,
plugins that break the layout, etc. I think the current solution in place
is really the best solution for plugins "customizing" their plugin cards.
This is currently handled by plugins uploading their very own screenshot,
which is contained to that specific area, and has size restrictions. This
prevents all the aforementioned risks, keeps the results uniform and
predictable, but still allows for color and life to be brought into the
result. A good compromise.
The minute that you start allowing plugins to modify the actual data, is
the minute someone will abuse that. Following suit with what I stated
above in point 2 - any data determined for the return should be handled by
the API side of things. This could get messy, and personally I think how
core has it implemented now addresses most of the complications that would
arise by allowing this level of modification (changing the descriptions
based on query). These are some of the reasons:
a. The search query is already determining WHAT to display based on the
user's input. They use their `readme.txt` to provide an adequate short-
description 150 char or less of what functionality their plugin provides.
b. Providing customization of this, it's obvious that plugins would and
could go overboard. c. This would probably end up just being a bunch of
bloat in the total distribution size of plugins. If we're honest with each
other, the only sole purpose of wanting to do anything beyond a
description of what your product does is going to be for marketing
tactics. Data like that living in the plugin after this point doesn't
serve purpose. This would be like and open invitation saying "include
your entire plugin's documentation inside of your plugin, don't create a
website". You're going to match more queries that way, right? If you're
already a major distributor, you're going to outrank everyone for
virtually every keyword going that route. Small plugin authors CAN'T
compete against large plugin authors. It's already pretty obvious in the
directory today, and this would make it a bit worse :(
@gibrown said:
> I do think we should also show highlights of why a result matched on the
search screen, but after thinking about it some more, that should probably
be another ticket and involve a complete redesign of the search interface.
Probably also better to do that on wp.org first.
I could understand perhaps changing the description field to display the
content that was matched based on the query instead of only displaying the
description alone. If perhaps a query is found and matches something from
a different section in the readme, or the description beyond 150 chars ect
- it could display that excerpt in place.
I do think this could make the search a bit more confusing though as
people are accustomed to seeing things a certain way right now. I agree
with you that this would be better suited at that point in a ticket about
a new search interface altogether. I also agree with the points about
making sure that largely downloaded plugins aren't receiving more benefit
from major changes being done. Honestly though - stepping back and
thinking of the purpose of plugins, and how WordPress was designed in the
first place with plugin functionality in mind - I think what @jb510
mentioned paints a more clear picture:
> Just like one can argue that it is better to have 20 tightly focused
plugins where you can turn 1 of them off or replace it in case of a
conflict, rather than to find out you have a conflict with one plugin you
are using for 20 different things around your site.
I agree with both sides of this familiar argument as they both have their
completely valid reasons, but isn't this conceptually the root of what the
problem is here right now? The issue REALLY isn't that the search is that
bad, it's the fact that plugins with millions of users are continuously
adding new features inside of their plugins. Big plugins leverage this
fact because they rank higher in the results returned. The features added
(JetPack seems to be everyone's favorite example offender of this) get
more and more diverse, and in turn those features are in direct
competition with other plugins which offer those specific smaller
features. The REAL issue is that plugins are not supporting the original
WordPress philosophy and direction that was intended for plugins.
It's the behavior ''that's still encouraged today'' in core with efforts
like "features as plugins" for new features to add to core which serve as
a single purpose single feature. Plugins are going out of scope of
serving their single purpose, and the reason for doing this is because
it's easier to dominate a market by putting everything into one successful
product than it is to try and build 50 individual features that are
successful. Let's say a major plugin were to actually break down it's
feature set a bit - Problem solved, and this ticket wouldn't exist. I
mean shoot - Google limits their single page result length to what, 130
chars? I'm pretty sure a 150 char description limit for a feature(aka a
plugin) is more than adequate for a single search result. It's enough to
describe entire products in other virtual spaces, it should be enough in
this display without having to go way out of the way of what is currently
done too.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/46763#comment:24>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list