wordpress yeni haber gösterim eklentisi
Gönderilme zamanı: Prş Şub 20, 2025 6:18 pm
copilota sorduk
Kod:Tümünü seç
selam bir wordpress uygulaması yapalım. bu uygulama yeni klasör içinde olsun. bu uygulama [habergoster] etiketinin girildiği yazıların içinde o yazı ile alakalı (etiket, kategori en az yada hiç gösterimi olmayan) yazıları güzel bir görüntüde ufak kip bir kalıp içerisinde ufak öne çıkan reim ve belirli bir sayıda başlık içerecek şekilde göstersin ve tıklamayla o yazıya gitsin. kaçtane göstereceğini admin sayfasında belirleyelim. daha başka ince ayar boyut özelliği başlık karakter sayısı ayarlarını admin sayfasındda yapabilelim....
Tabii ki, bu harika bir fikir! Bir WordPress uygulaması oluşturmak için birkaç adım izlememiz gerekecek. Öncelikle temel yapılandırmayı yaparak başlayalım ve ardından özel eklentimizi geliştirelim.
Adım 1: Yeni Klasör Oluşturma ve WordPress Kurulumu
Sunucunuzda yeni bir klasör oluşturun ve WordPress kurulum dosyalarını buraya indirin.
WordPress'i bu klasöre kurun ve yapılandırma ayarlarını yapın.
Adım 2: Yeni Bir Plugin Oluşturma
WordPress kurulumunuzda /wp-content/plugins/ dizinine gidin ve yeni bir klasör oluşturun. Örneğin:Bu klasörün içinde related-posts-showcase.php adında bir dosya oluşturun.Kod:Tümünü seç
related-posts-showcase
Adım 3: Plugin Dosyasını Yapılandırma
Aşağıdaki kodudosyasına yapıştırarak eklenti temelini atın:Kod:Tümünü seç
related-posts-showcase.php
Kod:Tümünü seç
<?php /** * Plugin Name: Related Posts Showcase * Description: "[habergoster]" shortcode'u ile ilgili yazıları gösterir. * Version: 1.0 * Author: [Your Name] */ // Shortcode fonksiyonu function rps_related_posts_showcase($atts) { ob_start(); // Yönetici ayarlarını al $settings = get_option('rps_settings'); $post_limit = isset($settings['post_limit']) ? $settings['post_limit'] : 5; $title_length = isset($settings['title_length']) ? $settings['title_length'] : 50; // Geçerli gönderinin etiketlerini al $tags = wp_get_post_tags(get_the_ID(), array('fields' => 'ids')); // "habergoster" etiketinin ID'sini al $habergoster_tag = get_term_by('slug', 'habergoster', 'post_tag'); if ($habergoster_tag) { $habergoster_tag_id = $habergoster_tag->term_id; } else { return ''; // Eğer "habergoster" etiketi yoksa hiçbir şey gösterme } // Eğer geçerli gönderi "habergoster" etiketine sahipse if (has_tag('habergoster', get_the_ID())) { // İlgili yazıları sorgula $args = array( 'tag__in' => $tags, 'post__not_in' => array(get_the_ID()), 'posts_per_page' => $post_limit, 'ignore_sticky_posts' => 1, 'orderby' => 'rand' // İsterseniz farklı bir sıralama kullanabilirsiniz ); $query = new WP_Query($args); if ($query->have_posts()) { echo '<div class="rps-related-posts">'; while ($query->have_posts()) { $query->the_post(); $title = get_the_title(); if (mb_strlen($title) > $title_length) { $title = mb_substr($title, 0, $title_length) . '...'; } echo '<div class="rps-post">'; if (has_post_thumbnail()) { echo '<a href="' . get_permalink() . '">'; the_post_thumbnail('thumbnail'); echo '</a>'; } echo '<h4><a href="' . get_permalink() . '">' . esc_html($title) . '</a></h4>'; echo '</div>'; } echo '</div>'; } wp_reset_postdata(); } return ob_get_clean(); } add_shortcode('habergoster', 'rps_related_posts_showcase'); // Yönetici ayarları fonksiyonları function rps_register_settings() { register_setting('rps_settings_group', 'rps_settings'); } add_action('admin_init', 'rps_register_settings'); function rps_settings_page() { ?> <div class="wrap"> <h1>Related Posts Showcase Ayarları</h1> <form method="post" action="options.php"> <?php settings_fields('rps_settings_group'); ?> <?php $settings = get_option('rps_settings'); ?> <table class="form-table"> <tr valign="top"> <th scope="row">Gösterilecek Yazı Sayısı</th> <td><input type="number" name="rps_settings[post_limit]" value="<?php echo isset($settings['post_limit']) ? esc_attr($settings['post_limit']) : 5; ?>" /></td> </tr> <tr valign="top"> <th scope="row">Başlık Karakter Sınırı</th> <td><input type="number" name="rps_settings[title_length]" value="<?php echo isset($settings['title_length']) ? esc_attr($settings['title_length']) : 50; ?>" /></td> </tr> </table> <?php submit_button(); ?> </form> </div> <?php } function rps_add_settings_page() { add_options_page('Related Posts Showcase', 'Related Posts Showcase', 'manage_options', 'related-posts-showcase', 'rps_settings_page'); } add_action('admin_menu', 'rps_add_settings_page'); ?>Kod:Tümünü seç
[habergoster]