Viewing 2 replies - 1 through 2 (of 2 total)
  • Cześć,

    najprościej w Twoim wypadku będzie utworzyć child-theme:
    1) tworzysz nowy katalog z motywem, w nim plik style.css o treści:

    /*
     Theme Name:   Aries Child
     Template:     aries
    */

    2) tworzysz plik functions.php i umieszczasz w nim taką treść:

    <?php
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    }

    3) Włączasz ten motyw, który stworzyłeś (czyli Aries Child). Będzie on bazował na motywie Aries ale możesz do niego dodać własne modyfikacje, które nie znikną po aktualizacji.

    Zostaje tylko kwestia wyświetlenia liczby komentarzy. Zgodnie z zasadą child-theme – jeśli plik istnieje w motywie potomnym to jest wczytywany zamiast pliku z motywu bazowego – Tobie chodzi o plik content.php. Możesz go przekopiwać do swojego motywu i wystarczy, byś pod linią 34 dodał linijkę:
    <?php comments_number( 'brak komentarzy', '1 komentarz', '% komentarzy' ); ?>

    Cześć.
    Jeżeli chcesz wyświetlić liczbę komentarzy w formie Komentarzy(x), to łatwiej będzie użyć funkcji: get_comments_number() np. w postaci:

    <?php
    $num_comments = get_comments_number();
    printf('Komentarzy(%d)', $num_comments);
    ?>

    Lub z uwzględnieniem języków i dobrych praktyk:

    <?php
    $num_comments = get_comments_number();
    printf(__("Comments(%d)", 'textdomain'), $num_comments);
    ?>

    W rozwiązaniu MrShemek jest mały chochlik związany z odmianą liczebników w języku polskim. WordPress z tego co mi wiadomo nie umożliwia prawidłowej odmiany liczebników w języku polskim. Trzeba się posiłkować dodatkowym kodem. W pliku functions.php można dodać funckję:

    <?php
    function numerals_in_polish($num_comments){
    
    $text = '% komentarze'; // Domyślny wariant    
    
    // Reguły dla pierwszych 19 liczb
    if ($num_comments <= 19) {
    
        if ($num_comments > 4 || $num_comments === 0) { // Zbiór od 5 do 19
            $text = '% komentarzy';
        } elseif (in_array($num_comments, array(2, 3, 4))) { // Zbiór dla 2,3,4
            $text = '% komentarze';
        } else { // Reszta czyli 1
            $text = '% komentarz';
        }
    } else { // Reguły dla liczb od 20 w górę
        $last_char = substr((string) $num_comments, -1, 1); // Zwraca ostatnią cyfrę
    
        if (in_array( $last_char, array(0, 1, 5, 6, 7, 8, 9))) { // Końcówki z 0, 1, 5, 6, 7, 8, 9
            $text = '% komentarzy';
        } elseif (in_array($last_char, array(2, 3, 4))) { // Końcówki 2, 3, 4
            $text = '% komentarze';
        }
    }
    
    return $text;
    }
    ?>

    Wtedy można przed wywołaniem funkcji comments_number sprawdzić formę gramatyczną i dodać ją jako trzeci parametr. Wyglądałoby to tak:

    <?php
    
    $num_comments = get_comments_number(); // Pobranie liczby komentarzy
    
    $text = numerals_in_polish($num_comments); // Ustawienie formy gramatycznej
    
    // Wyświetlenie
    comments_number( 'Brak komentarzy', '1 komentarz', $text );
    
    ?>

Viewing 2 replies - 1 through 2 (of 2 total)
  • Temat ‘Dodanie widoku ilości komentarzy na stronie głównej’ jest zamknięty na nowe odpowiedzi.