• Cześć,
    przygotowuję blog dotyczący charakterystyki różnych pokoleń.
    Chciałbym, żeby wiek we wpisach obliczał się automatycznie np. pisząc, że:

    Ludzie urodzeni w 2000r mają obecnie 19lat
    Jak zrobić by to 19lat obliczało się samo i co roku zmieniało?

Viewing 11 replies - 1 through 11 (of 11 total)
  • Cześć, najlepiej chyba zrobić to na shortcodzie. Na zasadzie [wiek rok="2000"]. Pytanie czy masz ochotę pogrzebać w kodzie czy szukasz gotowego rozwiązania?

    Twórca wątku kubaralszkowski

    (@kubaralszkowski)

    chciałbym to załatwić jak najłatwiej. Shortcode wydaje się dobrym pomysłem, bo ten wiek pojawi się w kilku miejscach i dobrze byłoby mieć panowanie nad tym gdzie będę to wstawiał. Próbowałem gotowych pluginów jak np. Baby Age i Age Calculator, ale to nie działa (instaluje się i aktywuje, ale nic z tym nie mogę zrobić na najnowszym WP).

    Twórca wątku kubaralszkowski

    (@kubaralszkowski)

    a może jest jakiś sposób, żeby włożyć do treści postu skrypt, który w danym miejscu wyświetli mi wynik takiego działania?

    a może jest jakiś sposób, żeby włożyć do treści postu skrypt, który w danym miejscu wyświetli mi wynik takiego działania?

    Do treści postu skryptów się nie wkłada tylko:

    najlepiej zrobić to na shortcodzie. Na zasadzie [wiek rok=”2000″

    Przykładowy skrypt może wyglądać tak:

    /* 
     * Fukcja obliczająca ilość lat od podanej daty
     *
     * @package WordPress
     * @subpackage WPSolucje.tk
     * @author: Paweł Nowak
     * 
     * @param array $wiek {
     *     Attributes of the age shortcode.
     *
     * @type string		$rok		Data, od której obliczane są lata.
     * @type string		$format		Format wywietlania wieku. Format musi pasować do wprowadzonej daty. 
     *								Więcej tu:
     *								@link: http://php.net/manual/en/datetime.createfromformat.php
     *
     * @return string 	@wynik		Zwraca obliczoną ilość lat od podanej daty w @type @rok
     **/
    
    add_shortcode('wiek', 'wpsolucje__sc__wiek');
    function wpsolucje__sc__wiek( $wiek ){
    	
    	$wiek = shortcode_atts( array(
    		'rok' => '2000',
    		'format' => 'Y',
    	), $wiek );
    	
    	
    	$rok = DateTime::createFromFormat( 'Y', $wiek['rok'] );
    	$teraz = new DateTime();
    	$wynik = $teraz->diff( $rok );
    	 
    	return $wynik->y;
    }

    Pastebin: https://pastebin.com/b4diW0AN

    Manipulując formatem, możesz obliczać lata na podstawie dostarczonej daty urodzin.

    • Odpowiedź została zmodyfikowana 5 years, 11 months temu przez Paweł. Powód: literówka
    Twórca wątku kubaralszkowski

    (@kubaralszkowski)

    Pawel >dzięki
    przepraszam, ale muszę poprosić o zejście jeszcze niżej.
    Nie wiem jak tego użyć.
    Prawdopodobnie muszę gdzieś osadzić ten kod, który napisałeś i później wywołać go shortcodem. Możesz jakoś naprowadzić?

    Twórca wątku kubaralszkowski

    (@kubaralszkowski)

    ok,
    znalazłem info jak to dodać, tylko wywołanie shortcode w postaci [wiek 1983]
    i tak daje mi wynik 19 (pewnie dlatego, że tak jest w skrypcie 'rok’ => '2000′)
    Jak to zmienić, żeby dodawać różne roczniki? może źle posługuję się parametrem w shortcode?
    wybaczcie, bo dla Was to pewnie poziom przedszkola, ja niestety dotychczas tylko instalowałem gotowe pluginy. Dla socjologa to nie takie proste 🙂

    • Ta odpowiedź została zmodyfikowana 5 years, 11 months temu przez kubaralszkowski.
    Twórca wątku kubaralszkowski

    (@kubaralszkowski)

    ok, zrobiłem tak i działa [wiek rok=1983]
    @mrpauloen dziękuję !!!!!!

    Jest to gotowa funkcja, którą musisz wstawić do pliku functions.php.

    Znacznika używasz w ten sposób, że w treści wpisu/strony wstawiasz:
    [wiek rok=”1956″]
    Funkcja oblicza na podstawie podanego roku ilość lat i zwraca wartość według formatu: 'Y’.
    Jest to tylko wyjściowy szkielet funkcji.

    O! takich funkcji szukałem!

    Nie ma wtyczek fajnych? 😀

    Z tego też można zrobić wtyczkę.

Viewing 11 replies - 1 through 11 (of 11 total)
  • Temat ‘Obliczanie aktualnego wieku’ jest zamknięty na nowe odpowiedzi.