Как добавить опцию "nofollow" в существующий список опций редактора ссылок "Связь ссылок (XFN)"?
Насколько сложно было бы добавить опцию "nofollow" в существующий список опций редактора ссылок "Связь ссылок (XFN)"?
Альтернативно, или еще лучше, в дополнение, добавьте элемент в список "Массовые действия" под названием "Не подписываться на ссылки", который сделает все выбранные ссылки rel="не подписываться".
Я хотел бы добавить эту функцию в мою тему functions.php
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 );
Работа выполнена...:)
Я не уверен, что там есть фильтр или действие. Если да, то достаточно просто. Если нет, используйте мой плагин внешних ссылок:
Вот функция, которая удаляет существующий мета-блок 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 любым удобным для вас способом.
Это уже там. Вам нужно только отключить javascript в вашем браузере и перезагрузить страницу. Теперь вы можете свободно входить nofollow
.
Если вы спросите себя, почему я это знаю: Связанный с билет #14599: Менеджер ссылок не поддерживает nofollow в отношениях ссылок (XFN)