Genel

WordPress’e Kod Nasıl Eklenir? (Kolay ve Güvenli)

WordPresse Kod Nasil Eklenir Kolay Ve Guvenli TR

WordPress’e Kod Nasıl Eklenir? (Kolay ve Güvenli)

woologgerDoğrulanmış Hesap
|
07.03.2025
|
|
51
WordPresse Kod Nasil Eklenir Kolay Ve Guvenli TR

WordPress’te Özel Kod Parçacıkları Ekleme

İlk olarak, web sitenize ücretsiz WPCode eklentisini kurmanız ve etkinleştirmeniz gerekiyor.

Etkinleştirmenin ardından, eklenti WordPress yönetici çubuğunuza ‘Kod Parçacıkları’ etiketli yeni bir menü öğesi ekleyecektir. Buna tıkladığınızda, sitenizde kaydettiğiniz tüm özel kod parçacıklarının bir listesini göreceksiniz.

Eklentiyi yeni kurduğunuz için listeniz boş olacaktır.

İlk özel kod parçacığınızı WordPress’e eklemek için ‘Yeni Ekle’ düğmesine tıklayın.

WordPress Te Ozel Kod Parcaciklari Ekleme Wpcode 5

Bu sizi ‘Parçacık Ekle’ sayfasına getirecektir. Burada önceden hazırlanmış kütüphaneden bir kod parçacığı seçebilir veya kendi özel kodunuzu ekleyebilirsiniz.

Özel kod eklemek için, ‘Özel Kodunuzu Ekleyin (Yeni Parçacık)’ seçeneğinin altındaki ‘Parçacığı Kullan’ düğmesine tıklayın.

WordPress Te Ozel Kod Parcaciklari Ekleme Wpcode 4

Özel kod parçacığınız için bir başlık girerek başlamanız gerekiyor. Bu, kodu tanımlamanıza yardımcı olacak herhangi bir şey olabilir.

Ardından, kod parçacığınızı Kod Önizleme kutusuna kopyalayıp yapıştırabilirsiniz. Sağdaki açılır menüden doğru kod türünü seçtiğinizden emin olun.

WordPress Te Ozel Kod Parcaciklari Ekleme Wpcode 3

Yukarıdaki ekran görüntüsünde, test sitemizden WordPress Google Fontlar kaldırmak için özel bir kod parçacığı ekledik.

php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
<?php

function register_code_block_widget($widgets_manager) {
    class Code_Block_Widget extends \Elementor\Widget_Base {

        private static $enqueued_assets = false;

        public function get_name() {
            return 'code_block';
        }

        public function get_title() {
            return 'Gelişmiş Kod Bloğu';
        }

        public function get_icon() {
            return 'eicon-code';
        }

        public function get_categories() {
            return ['general'];
        }

        protected function register_controls() {
            $this->start_controls_section(
                'content_section',
                [
                    'label' => 'İçerik',
                    'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
                ]
            );

            $this->add_control(
                'code_content',
                [
                    'label' => 'Kod',
                    'type' => \Elementor\Controls_Manager::CODE,
                    'language' => 'text',
                    'rows' => 10,
                ]
            );

            $this->add_control(
                'language',
                [
                    'label' => 'Programlama Dili',
                    'type' => \Elementor\Controls_Manager::SELECT,
                    'default' => 'php',
                    'options' => [
                        'html' => 'HTML',
                        'css' => 'CSS',
                        'javascript' => 'JavaScript',
                        'php' => 'PHP',
                        'python' => 'Python',
                        'sql' => 'SQL',
                        'java' => 'Java',
                        'cpp' => 'C++',
                        'csharp' => 'C#',
                        'ruby' => 'Ruby',
                        'swift' => 'Swift',
                        'typescript' => 'TypeScript',
                        'bash' => 'Bash',
                        'json' => 'JSON',
                        'xml' => 'XML',
                    ],
                ]
            );

            $this->end_controls_section();

            $this->start_controls_section(
                'style_section',
                [
                    'label' => 'Stil Ayarları',
                    'tab' => \Elementor\Controls_Manager::TAB_STYLE,
                ]
            );

            // ... (Your existing style controls here)

            $this->add_control(
                'copy_button_text',
                [
                    'label' => 'Kopyala Butonu Metni',
                    'type' => \Elementor\Controls_Manager::TEXT,
                    'default' => 'Kopyala',
                ]
            );

            $this->add_control(
                'copied_button_text',
                [
                    'label' => 'Kopyalandı Butonu Metni',
                    'type' => \Elementor\Controls_Manager::TEXT,
                    'default' => 'Kopyalandı!',
                ]
            );

            $this->add_control(
                'expand_button_more_text',
                [
                    'label' => 'Genişlet Butonu Metni (Daha Fazla)',
                    'type' => \Elementor\Controls_Manager::TEXT,
                    'default' => 'Daha fazla gör',
                ]
            );

            $this->add_control(
                'expand_button_less_text',
                [
                    'label' => 'Genişlet Butonu Metni (Daha Az)',
                    'type' => \Elementor\Controls_Manager::TEXT,
                    'default' => 'Daha az gör',
                ]
            );

            $this->end_controls_section();
        }

        protected function render() {
            $settings = $this->get_settings_for_display();
            $is_editor = \Elementor\Plugin::$instance->editor->is_edit_mode();

            if (!self::$enqueued_assets) {
                wp_enqueue_style('dashicons');
                wp_enqueue_style('highlightjs', 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/vs2015.min.css', [], '11.7.0');
                
                wp_enqueue_script('highlightjs', 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js', [], '11.7.0', true);
                wp_enqueue_script('code-block-script', get_template_directory_uri() . '/js/code-block.js', ['jquery', 'highlightjs'], '1.0.0', true);

                $this->enqueue_assets();
                self::$enqueued_assets = true;
            }

            $unique_id = 'code-block-' . wp_unique_id();
            $code_content = isset($settings['code_content']) ? $settings['code_content'] : '';
            $language = isset($settings['language']) ? $settings['language'] : 'php';
            $copy_button_text = isset($settings['copy_button_text']) ? $settings['copy_button_text'] : 'Kopyala';
            $copied_button_text = isset($settings['copied_button_text']) ? $settings['copied_button_text'] : 'Kopyalandı!';
            $expand_button_more_text = isset($settings['expand_button_more_text']) ? $settings['expand_button_more_text'] : 'Daha fazla gör';
            $expand_button_less_text = isset($settings['expand_button_less_text']) ? $settings['expand_button_less_text'] : 'Daha az gör';

            echo '<div class="code-block-container" id="' . esc_attr($unique_id) . '" data-is-editor="' . ($is_editor ? 'true' : 'false') . '">';
            echo '<div class="code-block-header sticky-top">';
            echo '<span class="language-label">' . esc_html($language) . '</span>';
            echo '<button class="copy-button top-copy-button" data-target="' . esc_attr($unique_id) . '" title="' . esc_attr($copy_button_text) . '">';
            echo '<span class="dashicons dashicons-clipboard"></span><span class="copy-text">' . esc_html($copy_button_text) . '</span>';
            echo '</button>';
            echo '</div>';
            echo '<div class="code-wrapper">';
            echo '<div class="code-content">';
            echo '<div class="line-numbers-wrap">';
            foreach (explode("\n", $code_content) as $i => $line) {
                echo '<span class="line-number">' . ($i + 1) . '</span>';
            }
            echo '</div>';
            echo '<pre><code class="language-' . esc_attr($language) . '">' . esc_html($code_content) . '</code></pre>';
            echo '</div>';
            echo '</div>';
            echo '<div class="copy-button-wrapper">';
            echo '<button class="collapse-button" data-target="' . esc_attr($unique_id) . '" title="' . esc_attr($expand_button_less_text) . '">';
            echo '<span>' . esc_html($expand_button_less_text) . '</span>';
            echo '</button>';
            echo '<button class="copy-button floating-copy-button" data-target="' . esc_attr($unique_id) . '" title="' . esc_attr($copy_button_text) . '">';
            echo '<span class="dashicons dashicons-clipboard"></span><span class="copy-text">' . esc_html($copy_button_text) . '</span>';
            echo '</button>';
            echo '</div>';
            echo '<div class="expand-button">';
            echo '<span>' . esc_html($expand_button_more_text) . '</span>';
            echo '<span class="dashicons dashicons-arrow-down-alt2"></span>';
            echo '</div>';
            echo '</div>';

            if ($is_editor) {
                echo '<script>document.addEventListener("DOMContentLoaded", function() { 
                    const container = document.getElementById("' . esc_attr($unique_id) . '");
                    if (container && container.dataset.isEditor === "true") {
                        container.querySelectorAll(".copy-button, .expand-button, .collapse-button").forEach(button => {
                            button.addEventListener("click", function(e) {
                                e.preventDefault();
                                e.stopPropagation();
                            });
                        });
                        if (typeof hljs !== "undefined") {
                            hljs.highlightBlock(container.querySelector("code"));
                        }
                    }
                });</script>';
            }
        }

        private function enqueue_assets() {
            $custom_css = "
                /* Your existing CSS here with modifications for sticky behavior and icon changes */
                .code-block-header.sticky-top { position: sticky; top: 0; z-index: 1000; }
                .copy-button .dashicons { font-size: 20px; } /* Adjust icon size */
                .expand-button .dashicons { font-size: 16px; } /* Adjust icon size */
                .copy-button-wrapper { position: sticky; bottom: 0; background: rgba(0,0,0,0.8); padding: 10px; transition: opacity 0.3s; }
                .code-wrapper { max-height: 300px; overflow-y: auto; }
                .code-wrapper.expanded { max-height: none; }
            ";
            wp_add_inline_style('highlightjs', $custom_css);
        }
    }

    $widgets_manager->register(new Code_Block_Widget());
}

add_action('elementor/widgets/register', 'register_code_block_widget');
Daha fazla gör
php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
Yorumlar

Bu makale hakkında düşüncelerinizi paylaşın

Tüm Yorumlar (1)
WoologgerWoologger

test yorumu 😊

12.03.2025 14:50
FahriD
Yanıtları Göster (2)
FahriFahri
Yanıt: @Woologger

Tet2👍

12.03.2025 14:51
Fahri2S
Yanıtları Göster (2)
Fahri2Fahri2
Yanıt: @Fahri

fahri

12.03.2025 14:51
K
@Fahri2 kişisine yanıt
😊👍❤️😂😢
SSdfsdfsd
Yanıt: @Fahri

fsdfsdf😂

12.03.2025 15:34
Gagshsh
Yanıtları Göster (1)
GagshshGagshsh
Yanıt: @Sdfsdfsd

Twst😢😢😢

12.03.2025 16:06
K
@Gagshsh kişisine yanıt
😊👍❤️😂😢
K
@Sdfsdfsd kişisine yanıt
😊👍❤️😂😢
K
@Fahri kişisine yanıt
😊👍❤️😂😢
DDasd
Yanıt: @Woologger

test

12.03.2025 15:33
K
@Dasd kişisine yanıt
😊👍❤️😂😢
K
@Woologger kişisine yanıt
😊👍❤️😂😢
YENİ YORUM EKLE