Как добавить опцию "nofollow" в существующий список опций редактора ссылок "Связь ссылок (XFN)"?


Насколько сложно было бы добавить опцию "nofollow" в существующий список опций редактора ссылок "Связь ссылок (XFN)"?

Альтернативно, или еще лучше, в дополнение, добавьте элемент в список "Массовые действия" под названием "Не подписываться на ссылки", который сделает все выбранные ссылки rel="не подписываться".

Я хотел бы добавить эту функцию в мою тему functions.php

Author: Scott B, 2010-12-10

4 answers

В качестве альтернативы вы можете отменить код, который отключает поле отношений, повторно указав в очереди на xfn.js сценарий..

Сначала создайте измененную версию этого скрипта, вот так..

jQuery(document).ready( function($) {
    //$('#link_rel').attr('readonly', 'readonly');
    $('#linkxfndiv input').bind('click keyup', function() {
        var isMe = $('#me').is(':checked'), inputs = '';
        $('input.valinp').each( function() {
            if (isMe) {
                $(this).attr('disabled', 'disabled').parent().addClass('disabled');
            } else {
                $(this).removeAttr('disabled').parent().removeClass('disabled');
                if ( $(this).is(':checked') && $(this).val() != '')
                    inputs += $(this).val() + ' ';
            }
        });
        $('#link_rel').val( (isMe) ? 'me' : inputs.substr(0,inputs.length - 1) );
    });
});

Сохранить как xfn.js и поместите в папку плагина или папку текущей темы.

ПРИМЕЧАНИЕ: Это прямая копия оригинального (существующего) скрипта, поставленного в очередь WordPress, я оставил исходный код, который устанавливает вход rel только для чтения, чтобы вы могли видеть, что было изменено (одна строка).

Затем добавьте это в код вашего плагина или темы functions.php, и раскомментируйте соответствующую строку в примере кода..

function switch_xfn_src( $src, $handle ) {
    if( 'xfn' == $handle )
        //$src = plugins_url( '/xfn.js', __FILE__ ); // For use inside plugin
        //$src = get_bloginfo( 'stylesheet_directory' ) . '/xfn.js'; // For use inside theme
    return $src;
}
add_filter( 'script_loader_src', 'switch_xfn_src', 10, 2 );

Работа выполнена...:)

 1
Author: t31os, 2010-12-15 00:55:21

Я не уверен, что там есть фильтр или действие. Если да, то достаточно просто. Если нет, используйте мой плагин внешних ссылок:

Http://wordpress.org/extend/plugins/sem-external-links/

 0
Author: Denis de Bernardy, 2010-12-10 17:54:34

Вот функция, которая удаляет существующий мета-блок link_xfn и добавляет другой идентичный с флажком "nofollow":

add_action( 'admin_menu', 'nofollow_enabled_xfn_box' );

function nofollow_enabled_xfn_box() {
    global $pagenow;
    if ( $pagenow != 'link.php' ) return;

    remove_meta_box( 'linkxfndiv', 'link', 'normal' );
    add_meta_box('linkxfndiv', __('Link Relationship (XFN)'), 'se5160_link_xfn_meta_box', 'link', 'normal' );
}

/**
 * Modified xfn form fields box, with "nofollow" link.
 *
 * @based on function link_xfn_meta_box() (from /wp-admin/includes/meta-boxes.php)
 *
 * @param object $link
 */
function se5160_link_xfn_meta_box($link) {
?>
<table class="editform" style="width: 100%;" cellspacing="2" cellpadding="5">
    <tr>
        <th style="width: 20%;" scope="row"><label for="link_rel"><?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('rel:') ?></label></th>
        <td style="width: 80%;"><input type="text" name="link_rel" id="link_rel" size="50" value="<?php echo ( isset( $link->link_rel ) ? esc_attr($link->link_rel) : ''); ?>" /></td>
    </tr>
    <tr>
        <td colspan="2">
            <table cellpadding="3" cellspacing="5" class="form-table">
                <tr>
                <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('nofollow') ?> </th>
                <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('not a trusted link') ?> </span></legend>
                    <label for="nofollow">
                    <input class="valinp" type="checkbox" name="nofollow" value="nofollow" id="nofollow" <?php xfn_check('seo','nofollow'); ?> />
                    <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('not a trusted link') ?></label>
                    </fieldset></td>
                </tr>
                <tr>
                    <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('identity') ?> </th>
                    <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('identity') ?> </span></legend>
                        <label for="me">
                        <input type="checkbox" name="identity" value="me" id="me" <?php xfn_check('identity', 'me'); ?> />
                        <?php _e('another web address of mine') ?></label>
                    </fieldset></td>
                </tr>
                <tr>
                    <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('friendship') ?> </th>
                    <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('friendship') ?> </span></legend>
                        <label for="contact">
                        <input class="valinp" type="radio" name="friendship" value="contact" id="contact" <?php xfn_check('friendship', 'contact'); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('contact') ?></label>
                        <label for="acquaintance">
                        <input class="valinp" type="radio" name="friendship" value="acquaintance" id="acquaintance" <?php xfn_check('friendship', 'acquaintance'); ?> />  <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('acquaintance') ?></label>
                        <label for="friend">
                        <input class="valinp" type="radio" name="friendship" value="friend" id="friend" <?php xfn_check('friendship', 'friend'); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('friend') ?></label>
                        <label for="friendship">
                        <input name="friendship" type="radio" class="valinp" value="" id="friendship" <?php xfn_check('friendship'); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('none') ?></label>
                    </fieldset></td>
                </tr>
                <tr>
                    <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('physical') ?> </th>
                    <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('physical') ?> </span></legend>
                        <label for="met">
                        <input class="valinp" type="checkbox" name="physical" value="met" id="met" <?php xfn_check('physical', 'met'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('met') ?></label>
                    </fieldset></td>
                </tr>
                <tr>
                    <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('professional') ?> </th>
                    <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('professional') ?> </span></legend>
                        <label for="co-worker">
                        <input class="valinp" type="checkbox" name="professional" value="co-worker" id="co-worker" <?php xfn_check('professional', 'co-worker'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('co-worker') ?></label>
                        <label for="colleague">
                        <input class="valinp" type="checkbox" name="professional" value="colleague" id="colleague" <?php xfn_check('professional', 'colleague'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('colleague') ?></label>
                    </fieldset></td>
                </tr>
                <tr>
                    <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('geographical') ?> </th>
                    <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('geographical') ?> </span></legend>
                        <label for="co-resident">
                        <input class="valinp" type="radio" name="geographical" value="co-resident" id="co-resident" <?php xfn_check('geographical', 'co-resident'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('co-resident') ?></label>
                        <label for="neighbor">
                        <input class="valinp" type="radio" name="geographical" value="neighbor" id="neighbor" <?php xfn_check('geographical', 'neighbor'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('neighbor') ?></label>
                        <label for="geographical">
                        <input class="valinp" type="radio" name="geographical" value="" id="geographical" <?php xfn_check('geographical'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('none') ?></label>
                    </fieldset></td>
                </tr>
                <tr>
                    <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('family') ?> </th>
                    <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('family') ?> </span></legend>
                        <label for="child">
                        <input class="valinp" type="radio" name="family" value="child" id="child" <?php xfn_check('family', 'child'); ?>  />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('child') ?></label>
                        <label for="kin">
                        <input class="valinp" type="radio" name="family" value="kin" id="kin" <?php xfn_check('family', 'kin'); ?>  />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('kin') ?></label>
                        <label for="parent">
                        <input class="valinp" type="radio" name="family" value="parent" id="parent" <?php xfn_check('family', 'parent'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('parent') ?></label>
                        <label for="sibling">
                        <input class="valinp" type="radio" name="family" value="sibling" id="sibling" <?php xfn_check('family', 'sibling'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('sibling') ?></label>
                        <label for="spouse">
                        <input class="valinp" type="radio" name="family" value="spouse" id="spouse" <?php xfn_check('family', 'spouse'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('spouse') ?></label>
                        <label for="family">
                        <input class="valinp" type="radio" name="family" value="" id="family" <?php xfn_check('family'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('none') ?></label>
                    </fieldset></td>
                </tr>
                <tr>
                    <th scope="row"> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('romantic') ?> </th>
                    <td><fieldset><legend class="screen-reader-text"><span> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('romantic') ?> </span></legend>
                        <label for="muse">
                        <input class="valinp" type="checkbox" name="romantic" value="muse" id="muse" <?php xfn_check('romantic', 'muse'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('muse') ?></label>
                        <label for="crush">
                        <input class="valinp" type="checkbox" name="romantic" value="crush" id="crush" <?php xfn_check('romantic', 'crush'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('crush') ?></label>
                        <label for="date">
                        <input class="valinp" type="checkbox" name="romantic" value="date" id="date" <?php xfn_check('romantic', 'date'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('date') ?></label>
                        <label for="romantic">
                        <input class="valinp" type="checkbox" name="romantic" value="sweetheart" id="romantic" <?php xfn_check('romantic', 'sweetheart'); ?> />
                        <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e('sweetheart') ?></label>
                    </fieldset></td>
                </tr>
            </table>
        </td>
    </tr>
</table>
<p><?php _e('If the link is to a person, you can specify your relationship with them using the above form. If you would like to learn more about the idea check out <a href="http://gmpg.org/xfn/">XFN</a>.'); ?></p>
<?php
}

Много копипасты из ядра, но это лучше, чем взлом. Вы, конечно, можете изменить параметры xfn любым удобным для вас способом.

 0
Author: goldenapples, 2010-12-11 21:41:50

Это уже там. Вам нужно только отключить javascript в вашем браузере и перезагрузить страницу. Теперь вы можете свободно входить nofollow.

Если вы спросите себя, почему я это знаю: Связанный с билет #14599: Менеджер ссылок не поддерживает nofollow в отношениях ссылок (XFN)

 0
Author: hakre, 2011-02-06 01:48:18