Post Author IP

설명

This plugin records the IP address of the original post author when a post first gets created.

The admin listing of posts is amended with a new “Author IP” column that shows the IP address of the author who first saved the post.

The plugin is unable to provide IP address information for posts that were created prior to the use of this plugin.

Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage

Hooks

The plugin is further customizable via four filters. Typically, code making use of filters should ideally be put into a mu-plugin or site-specific plugin (which is beyond the scope of this readme to explain).

c2c_show_post_author_ip_column (filter)

The ‘c2c_show_post_author_ip_column’ filter allows you to determine if the post author IP column should appear in the admin post listing table. Your hooking function can be sent 1 argument:

Argument :

  • $show_column (bool) Should the column be shown? Default true.

Example:

/**
 * Don't show the post author IP column except to admins.
 *
 * @param bool $show_column Should the column be shown? Default true.
 * @return bool
 */
function post_author_ip_column_admin_only( $show ) {
    if ( ! current_user_can( 'manage_options' ) ) {
        $show = false;
    }
    return $show;
}
add_filter( 'c2c_show_post_author_ip_column', 'post_author_ip_column_admin_only' );

c2c_get_post_author_ip (filter)

The ‘c2c_get_post_author_ip’ filter allows you to customize the value stored as the post author IP address. Your hooking function can be sent 2 arguments:

Arguments :

  • $ip (string) The post author IP address.
  • $post_id (int) The post ID.

Example:

/**
 * Store all IP addresses from local subnet IP addresses as the same IP address.
 *
 * @param string $ip      The post author IP address.
 * @param int    $post_id The post ID.
 * @return string
 */
function customize_post_author_ip( $ip, $post_id ) {
    if ( 0 === strpos( $ip, '192.168.' ) ) {
        $ip = '192.168.1.1';
    }
    return $ip;
}
add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 );

c2c_get_current_user_ip (filter)

The ‘c2c_get_current_user_ip’ filter allows you to customize the current user’s IP address, as used by the plugin. Your hooking function can be sent 1 argument:

Argument :

  • $ip (string) The post author IP address.

Example:

/**
 * Overrides localhost IP address.
 *
 * @param string $ip      The post author IP address.
 * @param int    $post_id The post ID.
 * @return string
 */
function customize_post_author_ip( $ip, $post_id ) {
    if ( 0 === strpos( $ip, '192.168.' ) ) {
        $ip = '192.168.1.1';
    }
    return $ip;
}
add_filter( 'c2c_get_post_author_ip', 'customize_post_author_ip', 10, 2 );

c2c_post_author_ip_allowed (filter)

The ‘c2c_post_author_ip_allowed’ filter allows you to determine on a per-post basis if the post author IP should be stored. Your hooking function can be sent 3 arguments:

Arguments :

  • $allowed (bool) Can post author IP be saved for post? Default true.
  • $post_id (int) The post ID.
  • $ip (string) The post author IP address.

Example:

/**
 * Don't bother storing localhost IP addresses.
 *
 * @param bool   $allowed Can post author IP be saved for post? Default true.
 * @param int    $post_id The post ID.
 * @param string $ip      The post author IP address.
 * @return string
 */
function disable_localhost_post_author_ips( $allowed, $post_id, $ip ) {
    if ( $allowed && 0 === strpos( $ip, '192.168.' ) ) {
        $allowed = false;
    }
    return $allowed;
}
add_filter( 'c2c_post_author_ip_allowed', 'disable_localhost_post_author_ips', 10, 3 );

스크린샷

  • A screenshot of the admin post listing showing the added "Author IP" column. It demonstrates the mix of a post where the post author IP address was recorded, and posts where it wasn't (due to the plugin not being activated at the time).
  • A screenshot of the Publish metabox for a post showing the post author's IP address (for versions of WordPress older than 5.0, or later if the new block editor aka Gutenberg is disabled)
  • A screenshot of the block editor sidebar panel for a post showing the post author IP address (WP 5.0 and later)

설치

  1. Install via the built-in WordPress plugin installer. Or download and unzip post-author-ip.zip inside the plugins directory for your site (typically wp-content/plugins/)
  2. Activate the plugin through the ‘Plugins’ admin menu in WordPress

FAQ

If a post is originally drafted at one IP address, then later worked on at another IP address, which IP address gets recorded?

The IP address in use at the time that the post is first saved (regardless of whether the post was saved as a draft, immediately published, or some other status) will be recorded.

Are other IP addresses in use during the post’s handling (such as when it is edited, published, etc) also tracked?

No, this plugin only records the IP address in use when the post was first saved.

How do I see (or hide) the “Author IP” column in an admin listing of posts?

In the upper-right of the page is a “Screen Options” link that reveals a panel of options. In the “Columns” section, check (to show) or uncheck (to hide) the “Author IP” option.

Is this plugin compatible with the new block editor (aka Gutenberg)?

Yes. This plugin is compatible with the block editor as well as the classic editor.

Does this plugin include unit tests?

Yes.

후기

이 플러그인에 대한 평가가 없습니다.

기여자 & 개발자

“Post Author IP”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.

기여자

“Post Author IP”(이)가 2(으)로 번역되었습니다. 기여해 주셔서 번역자님께 감사드립니다.

자국어로 “Post Author IP”(을)를 번역하십시오.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록RSS로 구독하십시오.

변경이력

1.3 (2020-08-06)

Highlights:

  • This recommended release adds support for all public post types, reduces column width, improves meta key handling, expands unit testing, adds a TODO.md file, updates compatibility to be WP 4.9 through 5.4+, and more internally.

Details:

  • New: Enable plugin functionality for all public post types by default
    • New: Add get_post_types() for retrieving post types
    • New: Add filter c2c_stealth_publish_post_types to filter post types
  • New: Add is_protected_meta() to protect the meta key from being exposed as a custom field
  • New: Improve configurability and accessibility of meta key name
    • New: Add get_meta_key_name() as getter for meta_key name
    • New: Add filter c2c_post_author_ip_meta_key for customizing meta key name
  • New: Add rest_pre_insert() to add meta key as first-class object property prior to REST-initiated update
  • New: Add HTML5 compliance by omitting type attribute for style tag when the theme supports ‘html5’
  • New: Add TODO.md for newly added potential TODO items
  • Change: Reduce width of ‘Author IP’ column
  • Change: Remove duplicate hook registration
  • Change: Note compatibility through WP 5.4+
  • Change: Drop compatibility for version of WP older than 4.9
  • Change: Update JS dependencies
  • Change: Tweak formatting of CSS styles
  • Change: Update links to coffee2code.com to be HTTPS
  • Unit tests:
    • New: Add tests for add_admin_css(), admin_css(), add_post_column(), enqueue_block_editor_assets(), handle_column_data()
    • New: Add tests for include_column(), register_meta(), show_post_author_ip(), transition_post_status()
    • New: Add test for default hooks
    • Change: Use get_meta_key_name() to set default meta key used by tests
    • Change: Remove unnecessary unregistering of hooks in tearDown()
    • Change: Use HTTPS for link to WP SVN repository in bin script for configuring unit tests

1.2.1 (2020-01-06)

  • New: Unit tests: Add test to verify plugin hooks plugins_loaded action to initialize itself
  • Change: Note compatibility through WP 5.3+
  • Change: Update JS dependencies
  • Change: Update copyright date (2020)

1.2 (2019-06-21)

  • New: Add support for new block editor (aka Gutenberg)
  • New: Add CHANGELOG.md file and move all but most recent changelog entries into it
  • New: Add .gitignore file
  • Change: Update register_meta() with a proper auth_callback, register_post_meta() when possible, initialize on init
  • Unit tests:
    • Change: Update unit test install script and bootstrap to use latest WP unit test repo
    • Fix: Fix unit tests related to post meta
  • Change: Note compatibility through WP 5.2+
  • Change: Add link to plugin’s page in Plugin Directory to README.md
  • Change: Split paragraph in README.md’s “Support” section into two
  • Fix: Correct typo in GitHub URL

Full changelog is available in CHANGELOG.md.