• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodanie parametru do shortcode

Konkurs Mistrz Programowania
+2 głosów
410 wizyt
pytanie zadane 26 listopada 2024 w Systemy CMS przez Dawid89 Obywatel (1,210 p.)

Cześć,

próbuję zrobić uniwersalny shortcode gdzie poprzez zmianę parametru będę mógł go wielokrotnie użyć odwołując się do innego adresu url. Stanąłem jednak w miejscu i nie mogę tego rozgryźć. Chciałbym móc dodać shortcode w formie [chart_shortcode chart='adres wykresu'] który załaduje mi odpowiedni wykres. 

<?php
// Funkcja obsługująca shortcode
function my_custom_shortcode( $charturl) {?>
       $chart_html = '
	     <!-- TradingView Chart BEGIN -->
         <script type="text/javascript" src="https://s3.tradingview.com/tv.js"></script>
         <script type="text/javascript">
         var tradingview_embed_options = {};
         tradingview_embed_options.width = "640";
         tradingview_embed_options.height = "400";
         tradingview_embed_options.chart = "TUTAJ UNIKALNY ADRES WYKRESU";
         new TradingView.chart(tradingview_embed_options);
         </script>
         <p><a href="https://pl.tradingview.com/chart/SPY/'TUTAJ UNIKALNY ADRES WYKRESU'/"></a></p>
         return $chart_html

<?php
    // Definiowanie domyślnych wartości atrybutów
    $atts = shortcode_atts(
        array(
            'chart' => $chartcode, 
        ),
        $atts,
       'chart_shortcode'
    );
}
?>
// Rejestracja shortcode
add_shortcode( 'chart_shortcode', 'my_custom_shortcode' );

 

1 odpowiedź

+3 głosów
odpowiedź 26 listopada 2024 przez pn63 Użytkownik (660 p.)
edycja 26 listopada 2024 przez Arkadiusz Waluk
 
Najlepsza
<?php
// Funkcja obsługująca shortcode
function my_custom_shortcode( $atts ) {
 
    $atts = shortcode_atts(
        array(
            'chart' => '', // Domyślnie pusty, jeśli nie podany
        ),
        $atts,
        'chart_shortcode'
    );

    if ( !empty( $atts['chart'] ) ) {
        $chart_html = '
            <!-- TradingView Chart BEGIN -->
            <script type="text/javascript" src="https://s3.tradingview.com/tv.js"></script>
            <script type="text/javascript">
                var tradingview_embed_options = {};
                tradingview_embed_options.width = "640";
                tradingview_embed_options.height = "400";
                tradingview_embed_options.chart = "' . esc_js( $atts['chart'] ) . '";
                new TradingView.chart(tradingview_embed_options);
            </script>
            <p><a href="https://pl.tradingview.com/chart/' . esc_js( $atts['chart'] ) . '/"></a></p>
            <!-- TradingView Chart END -->
        ';
        return $chart_html;
    } else {
        return 'Proszę podać adres wykresu w atrybucie chart.';
    }
}

add_shortcode( 'chart_shortcode', 'my_custom_shortcode' );
?>
1
komentarz 26 listopada 2024 przez Arkadiusz Waluk Ekspert (291,390 p.)
Fajnie, że udało się pomóc, ale miło byłoby jednak, aby kogoś bardziej naprowadzić i coś wyjaśnić, a nie wkleić gotowca bez żadnego słowa wyjaśnienia. Tym bardziej, że gotowca wygenerował Chat GPT czy inny model, co widać także po Twoich innych odpowiedziach. Lepiej napisać ich mniej, ale lepszych, niż dużo razy przekleić coś od AI. Forum ma się opierać na faktycznej pomocy, tzn. zakładamy że raczej każdy powinien umieć skorzystać z Google albo wkleić swoje zadanie do Chata GPT we własnym zakresie i jeśli pomimo to ktoś pyta, to widać trzeba mu oczekuje jednak czegoś innego. Prosimy więc aby faktycznie pomagać, a nie wrzucać wygenerowane automatycznie odpowiedzi.
komentarz 2 grudnia 2024 przez pn63 Użytkownik (660 p.)

ok pa indecisionangel

Podobne pytania

0 głosów
0 odpowiedzi 1,475 wizyt
0 głosów
0 odpowiedzi 289 wizyt
pytanie zadane 19 grudnia 2024 w JavaScript przez Dawid89 Obywatel (1,210 p.)
0 głosów
1 odpowiedź 213 wizyt
pytanie zadane 21 stycznia 2020 w PHP przez mi-20 Stary wyjadacz (13,250 p.)

93,652 zapytań

142,574 odpowiedzi

323,089 komentarzy

63,167 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...