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

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

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.

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.

Ö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.

Yukarıdaki ekran görüntüsünde, test sitemizden WordPress Google Fontlar kaldırmak için özel bir kod parçacığı ekledik.
<?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');
Bu makale hakkında düşüncelerinizi paylaşın
test yorumu 😊
Tet2👍
fahri
fsdfsdf😂
Twst😢😢😢
test