Editör olmadan wpLink nasıl kullanılır?


11

Bağlantı eklemek için tema seçeneği oluşturmak istiyorum. Wp editörü varsa bu komut dosyalarını yüklemek ve iletişim kutusunu tetiklemek işe yarar.

wp_enqueue_script('wplink');
wp_enqueue_script('wpdialogs');
wp_enqueue_script('wpdialogs-popup');
wp_enqueue_style('wp-jquery-ui-dialog');
wp_enqueue_style('thickbox');

wp_editor('', 'unique_id', array('editor_class'=>'hidden'));



$('.add-link').on("click", function(e){
    e.preventDefault();

      wpLink.open();
      return false;
});

ama editör olmadan bağlantıyı iletişim kutusu nasıl açılır?

Neyin peşindeyim

resim açıklamasını buraya girin resim açıklamasını buraya girin


2
Her şey editörle sıkı sıkıya bağlı, bağlantı iletişim kutusu editör sınıfının bir yöntemi tarafından oluşturuldu ve onu çağıran komut dosyasının bir editör örneğine ihtiyacı var.
Milo

editör olmadan ne demek istiyorsun? Nereye sahip olmak istiyorsun?
Pmpr

Tema ayarlarında üçlü
Benn

Kendinizinkini oluşturmaktan veya Advanced Custom Field'ın ilişki alanı gibi bir şey kullanmaktan daha iyisiniz: advancedcustomfields.com/resources/relationship veya Custom Field Suite'in ilişki alanı: docs.customfieldsuite.com/field-types/relationship.html
MikeNGarrett

Yanıtlar:


7

Bunu yapmanın etik bir yolu yoktur. Ama yine de bunu yapmanın bir yolu var. WordPress, editörün orada olduğunu ancak editörün orada olmadığında hala WordPress tutamacını akılda tutarak wpLink komut dosyasını yazdı (İyi Şey)

Bu örneği düşünün ve altbilgide ön uçta kullandığımızı varsayın.

Önce gerekli stili ve komut dosyalarını sıralayın.

function enqueue_scripts_209490() {
    wp_enqueue_script('wplink');
    wp_enqueue_style( 'editor-buttons' );
}
add_action('wp_enqueue_scripts', 'enqueue_scripts_209490');

Şimdi bu işlevi altbilgiye ekleyin Satır içi yorumları okuyun

function display_wplink_html_209490() {
    //Our textarea, click to open the link edior and insert the link in same editor
    echo '<textarea id="example_209490"></textarea>';

    // Require the core editor class so we can call wp_link_dialog function to print the HTML.
    // Luckly it is public static method ;)
    require_once ABSPATH . "wp-includes/class-wp-editor.php";
    _WP_Editors::wp_link_dialog(); ?>

    <script type="text/javascript">
        /* We need ajaxurl to send ajax to retrive links */
        var ajaxurl = "<?php echo admin_url( 'admin-ajax.php'); ?>";
        jQuery(document).ready(function (){
            jQuery('#example_209490').click(function (){
                wpLink.open('example_209490'); /* Bind to open link editor! */
            });
        })
    </script><?php
}
add_action('wp_footer', 'display_wplink_html_209490');

Not: js hatası setUserSettingtanımlanmadığı ve kullanıcı oturum açmadığında AJAX yanıtı olmadığı için kullanıcı oturum açmadığında çalışmaz.


Her nasılsa bu _WP_Editorskod olmadan daha önce çalışan tüm vardı ve kırdı. Cevabınız günü kurtardı - teşekkürler!
random_user_name
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.