最新公告
  • 欢迎您光临旗鱼小站,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • WordPress教程:纯代码实现外链转内链Go跳转短链接功能

    打开当前wordpress主题的functions.php文件,添加以下代码:

    // 代码实现短网址功能
    class SimpleURLs {
    // Constructor
    function __construct() {
    //register_activation_hook( __FILE__, 'flush_rewrite_rules' );
    add_action( 'init', array( &$this, 'register_post_type' ) );
    add_action( 'manage_posts_custom_column', array( &$this, 'columns_data' ) );
    add_filter( 'manage_edit-surl_columns', array( &$this, 'columns_filter' ) );
    add_action( 'admin_menu', array( &$this, 'add_meta_box' ) );
    add_action( 'save_post', array( &$this, 'meta_box_save' ), 1, 2 );
    add_action( 'template_redirect', array( &$this, 'count_and_redirect' ) );
    }
    // PHP4 Constructor
    function SimpleURLs() {
    $this->__construct();
    }
    function register_post_type() {
    register_post_type( 'surl',
    array(
    'labels' => array(
    'name' => __( 'Simple URLs' ),
    'singular_name' => __( 'URL' ),
    'add_new' => __( 'Add URL' ),
    'add_new_item' => __( '新建URL' ),
    'edit' => __( 'Edit' ),
    'edit_item' => __( 'Edit URL' ),
    'new_item' => __( 'New URL' ),
    'view' => __( 'View URL' ),
    'view_item' => __( 'View URL' ),
    'search_items' => __( 'Search URL' ),
    'not_found' => __( 'No URLs found' ),
    'not_found_in_trash' => __( '' )
    ),
    'public' => true,
    'query_var' => true,
    'menu_position' => 20,
    'supports' => array( 'title' ),
    'rewrite' => array( 'slug' => 'go', 'with_front' => false )
    )
    );
    }
    function columns_filter( $columns ) {
    $columns = array(
    'cb' => '<input type="checkbox" />',
    'title' => __('标题'),
    'url' => __('原地址'),
    'permalink' => __('短地址'),
    'clicks' => __('点击量')
    );
    return $columns;
    }
    function columns_data( $column ) {
    global $post;
    $url = get_post_meta($post->ID, '_surl_redirect', true);
    $count = get_post_meta($post->ID, '_surl_count', true);
    if ( $column == 'url' ) {
    echo make_clickable( esc_url( $url ? $url : '' ) );
    }
    elseif ( $column == 'permalink' ) {
    echo make_clickable( get_permalink() );
    }
    elseif ( $column == 'clicks' ) {
    echo esc_html( $count ? $count : 0 );
    }
    }
    function add_meta_box() {
    add_meta_box('surl', __('URL信息', 'surl'), array( &$this, 'meta_box' ), 'surl', 'normal', 'high');
    }
    function meta_box() {
    global $post;
    printf( '<input type="hidden" name="_surl_nonce" value="%s" />', wp_create_nonce( plugin_basename(__FILE__) ) );
    printf( '<p><label for="%s">%s</label></p>', '_surl_redirect', __('URL原链接地址:', 'surl') );
    printf( '<p><input style="%s" type="text" name="%s" id="%s" value="%s" /></p>', 'width: 99%;', '_surl_redirect', '_surl_redirect', esc_attr( get_post_meta( $post->ID, '_surl_redirect', true ) ) );
    $count = isset( $post->ID ) ? get_post_meta($post->ID, '_surl_count', true) : 0;
    printf( '<p>此链接已经被点击 <b>%d</b> 次.', esc_attr( $count ) );
    }
    function meta_box_save( $post_id, $post ) {
    $key = '_surl_redirect';
    // verify the nonce
    if ( !isset($_POST['_surl_nonce']) || !wp_verify_nonce( $_POST['_surl_nonce'], plugin_basename(__FILE__) ) )
    return;
    // don't try to save the data under autosave, ajax, or future post.
    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
    if ( defined('DOING_AJAX') && DOING_AJAX ) return;
    if ( defined('DOING_CRON') && DOING_CRON ) return;
    // is the user allowed to edit the URL?
    if ( ! current_user_can( 'edit_posts' ) || $post->post_type != 'surl' )
    return;
    $value = isset( $_POST[$key] ) ? $_POST[$key] : '';
    if ( $value ) {
    // save/update
    update_post_meta($post->ID, $key, $value);
    } else {
    // delete if blank
    delete_post_meta($post->ID, $key);
    }
    }
    function count_and_redirect() {
    if ( !is_singular('surl') )
    return;
    global $wp_query;
    // Update the count
    $count = isset( $wp_query->post->ID ) ? get_post_meta($wp_query->post->ID, '_surl_count', true) : 0;
    update_post_meta( $wp_query->post->ID, '_surl_count', $count + 1 );
    // Handle the redirect
    $redirect = isset( $wp_query->post->ID ) ? get_post_meta($wp_query->post->ID, '_surl_redirect', true) : '';
    if ( !emptyempty( $redirect ) ) {
    wp_redirect( esc_url_raw( $redirect ), 301);
    exit;
    }
    else {
    wp_redirect( home_url(), 302 );
    exit;
    }
    }
    }
    $SimpleURLs = new SimpleURLs;
    // 代码实现短网址功能
    

     

    旗鱼小站.我们不生产资源,我们只是大资源的搬运工
    旗鱼小站 » WordPress教程:纯代码实现外链转内链Go跳转短链接功能

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 1262500034@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    • 1015会员总数(位)
    • 2006资源总数(个)
    • 8本周发布(个)
    • 0 今日发布(个)
    • 203稳定运行(天)

    提供最优质的资源集合

    免费资源 精品源码