coderedcms icon indicating copy to clipboard operation
coderedcms copied to clipboard

WordPress like category and tag supported URLs

Open msantoshk opened this issue 4 years ago • 1 comments

Is your feature request related to a problem? Please describe.

As I know we can create categories using but that category feature work as a filter but if someone wants like example.com/blog/caterory/python or example.com/blog/tag/python-pip

this will be beneficial when SEO is someone's priority. and also this is a very common feature for every blog

Describe the solution you'd like

this feature if add in the setting area so that activate or inactive will be user's choices and also if breadcrumbs added for blog page then it will be awsome

Describe alternatives you've considered

right now no alternative for this

Additional context

from point one its is clear

msantoshk avatar Jul 14 '21 22:07 msantoshk

On the index page, if filtering is enabled by classifier under Layout settings, then URLs will be generated using querystrings. For example:

example.com/blog/?c=python

This will show all children classified as Python. This will still get you the SEO you are looking for, as those URLs are crawlable by search engines.

However to your point, we don't have any kind of customizable URL for this. Similarly, there is no site-wide classifier filter/URL - only on specific parent/index pages.

I don't think we have any plans to change the URL structure or make this a site-wide feature. However you could certainly implement this with a custom Django URL and view, by using ClassifierTerm.slug and page.classifier_terms. An example view:


# -- urls.py --------

from django.urls import path
from . import views

urlpatterns = [
    ...,
    path("tag/<slug:slug>/", views.pages_by_tag),
]


# -- views.py --------

from coderedcms.models import CoderedPage, ClassifierTerm

def pages_by_tag(request, slug):
    term = ClassifierTerm.objects.get(slug=slug)
    pages = CoderedPage.objects.filter(classifier_terms__in=[term]).live()
    # Return response and render `pages` as part of context.
    ...

vsalvino avatar Apr 19 '23 21:04 vsalvino