WordPress как на ладони

Как узнать устанолвена ли для главной статическая страница?

В WordPress есть возможно поставить статическую страницу для главной, также назначить отдельную страницу для постов блога. Делается это в Настройках чтения.

У меня такой вопрос, точнее два:

  1. Как программно узнать установлена ли для главной страницы сайта отдельная страница и установлена ли для статей блога отдельная страница?

  2. Как программно установить обе эти страницы?

Похоже это делается в каких-то опциях, но вот в каких?

0
Гость
7.6 лет назад
  • 1
    Kama9618

    Это все храниться в настройках: page_on_front и page_for_posts. Т.е. чтобы узнать проверяем есть ли данные в настройке:

    if( $page_id = get_option('page_on_front') ){
    	// страница для главной установлена
    }
    
    if( $page_id = get_option('page_for_posts') ){
    	// страница для записей блога установлена
    }

    Чтобы установить, обновляем настройки:

    // ID постоянной страницы, которая указана как главная страница сайта
    update_option( 'page_on_front' );
    
    // ID постоянной страницы, которая указана как страница блога (последних записей сайта)
    update_option( 'page_for_posts' );

    -

    Также есть связанная опция show_on_front в которой храниться: 'posts' или 'page' - т.е. выводятся ли на главной посты или установлена страница. Вот для наглядности код метода is_front_page(), тут по коду видно что к чему...

        public function is_front_page() {
    		// most likely case
    		if ( 'posts' == get_option( 'show_on_front') && $this->is_home() )
    			return true;
    		elseif ( 'page' == get_option( 'show_on_front') && get_option( 'page_on_front' ) && $this->is_page( get_option( 'page_on_front' ) ) )
    			return true;
    		else
    			return false;
    	}
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация