• Mam WordPressa który jest bardzo multimedialny i nastawiony na materiały video. Każdy post to film wideo. Otagowałem je, ale chciałbym teraz aby tagi miały pewną hierarchię. Mianowicie:

    Mam tag: „Liczba Zabitych” i w każdym filmie mam określoną liczbę zabitych:

    Rambo 298
    Conan the Barbarian 76
    The Terminator 39

    Chciałbym aby dla każdego filmu. Tag „Liczba Zabitych” w poście miał liczbę w nawiasie która określa jego miejsca wg. liczby zabitych w filmie. np. Rambo ma najwięcej to u niego ten tag wyglądałby tak „Liczba Zabitych(1)” a w The Terminator byłoby „Liczba Zabitych(3)” określając jego miejsce w hierarchii.

    Możesz mi coś doradzić od czego zacząć? Jakich narzędzi użyć?
    Jestem gotowy nawet za to zapłacić aby ktoś to zrobił.

Viewing 3 replies - 1 through 3 (of 3 total)
  • Tagi się do tego nie nadają. Lepiej by było utworzyć osobne pole (custom field) przy wpisie z liczbą zabitych.

    Mając taką informacje w polu, możesz odczytać liczbę zabitych ze wszystkich wpisów, posortować i tym sposobem będziesz miał pozycję.
    Takie coś ma sens jeżeli masz mało wpisów.

    Jeżeli jest ich dużo to lepiej zrobić dodatkowe pole z pozycją, która będzie wyliczana w ten sam sposób, dla każdego wpisu i zapisywana w tym polu, przy dodawaniu nowego posta.

    Thread Starter lurgen

    (@lurgen)

    Dziękuje za odpowiedź daro256.
    Ktoś na anglojęzycznej wersji tego forum wcześniej wspomniał mi o custom field i tak też zrobiłem. Ale jak słusznie zauważyłeś to ma sens tylko przy małej liczbie wpisów. Obecnie skłaniam się do tego aby zrobić całą tabele w MySQL i bezpośrednio z niej sczytywać dane.

    Można zrobić osobną tabelę z danymi, ale i tak całość sprowadzi się do tego samego.

    Mianowicie do napisania funkcji, która weźmie pod uwagę ilość zabitych przy każdym wpisie i na jej podstawie wyliczy pozycję, oraz zapiszę ją albo do pola przy wpisie, albo w tabeli o której wspominałeś. Funkcja też musi zaktualizować pozycję pozostałych wpisów z uwzględnieniem ilości zabitych w nowo zakładanym poście.

    Następnie do podpięcia tej funkcji pod zdarzenie zakładania nowego wpisu. W ten sposób pozycja będzie wyliczana tylko raz przy zakładaniu posta, a nie za każdym razem przy wyświetlaniu strony. Ma to znaczenie przy dużej ilości wpisów.

    Ze względu na łatwość obsługi, trzymałbym się jednak samych cutom fields i darowałbym sobie tworzenie osobnej tabeli.

    Raz, że takie pola można bardzo łatwo tworzyć za pomocą pluginów (np. advanced custom fields).

    Dwa, wartości z tych pól można wykorzystywać przy funkcjach wordpressa zwracających posty do wyświetlenia. W prosty sposób można np. pobrać wszystkie posty i posortować je według wyliczonej pozycji zapisanej do pola.

    W przypadku osobnej tabeli, będzie to już trudniejsze i prawdopodobnie wolniejsze w działaniu, gdyż wbudowane funkcje wordpressa są zoptymalizowane pod względem wydajności.

    A i tak trzeba będzie użyć funkcji z wordpressa do zwracania postu, tylko że zamiast zwracać ich wiele będziesz zwracał tylko jeden i ten proces będzie się powtarzał w pętli (tak przynajmniej to widzę). W ten sposób nie będzie wykorzystana optymalizacja funkcji.

Viewing 3 replies - 1 through 3 (of 3 total)
  • Temat ‘Tagi z hierarchią?’ jest zamknięty na nowe odpowiedzi.