web-dev-qa-db-ja.com

現在の静的ページが管理プラグインからのフロントページであるかどうかを確認する方法

静的ページをフロントページに設定します。

ユーザーが自分のカスタムプラグインのホームページに現在いるかどうかを知る必要があります。

ホームページは静的ページなので、関数is_home()およびis_front_page()は機能しません。

このページのIDを取得できます。

$frontpage_id = get_option('page_on_front');

しかし、どのように管理プラグインから現在のページのIDを取得するのですか? (それから私はそれらのIDを比較し、現在のページがホームページであるかどうかを検出することができるでしょう!)

2バンクコード

1)静的ページをフロントページとして設定します。

2)ダミープラグインを作成する

3)プラグインのコード

$d = is_front_page();
var_dump($d);

==> 

bool(false)

UPD

http://codex.wordpress.org/Conditional_Tags#The_Front_Page

動作しないはず

2ヴァンコーダー

管理プラグインはプラグインを意味します:)ごめんなさい

そして、この2行は今のところすべてコンテキストです。自分で試してみてください、それは機能しません。

WPバージョン3.3.2

2
sbxmal

これが私がもっとコードコンテキストを求めた理由です。私はあなたがフックされた関数の外側、あるいはis_front_page()が準備される前に早すぎるコールされた関数の内側でフロントページをチェックしていると思います。

以下が動作します。

function your_function()  {
$d = is_front_page();
var_dump($d);
}

add_action( 'wp', 'your_function' );
2
vancoder

私はあなたがエディタ画面について話していると思いますか?そうであれば、グローバル変数$post_IDを使うことができます。

add_action( 'edit_form_after_title', 'wpse_94626_front_page_detection' );

function wpse_94626_front_page_detection()
{
    global $post_ID, $post_type;

    if ( empty ( $post_ID ) or 'page' !== $post_type )
        return;

    if ( $post_ID === (int) get_option( 'page_on_front' ) )
        print '<p><b>This is the front page!</b></p>';
}

enter image description here

3
fuxia