Yoast\WP\SEO\Task_List\Application\Tasks

Delete_Sample_Page{}Yoast 1.0└─ Completeable_Task_Interface, Abstract_Task

Represents the task for deleting the sample page.

Хуков нет.

Использование

$Delete_Sample_Page = new Delete_Sample_Page();
// use class methods

Методы

  1. public complete_task()
  2. public get_call_to_action()
  3. public get_copy_set()
  4. public get_is_completed()
  5. public get_link()
  6. private get_sample_page()

Код Delete_Sample_Page{} Yoast 27.7

class Delete_Sample_Page extends Abstract_Task implements Completeable_Task_Interface {

	/**
	 * Holds the id.
	 *
	 * @var string
	 */
	protected $id = 'delete-sample-page';

	/**
	 * Holds the priority.
	 *
	 * @var string
	 */
	protected $priority = 'medium';

	/**
	 * Holds the duration.
	 *
	 * @var int
	 */
	protected $duration = 1;

	/**
	 * Returns whether this task is completed.
	 *
	 * @return bool Whether this task is completed.
	 */
	public function get_is_completed(): bool {
		$page = $this->get_sample_page();

		if ( $page === null ) {
			return true;
		}

		return $page->post_date !== $page->post_modified;
	}

	/**
	 * Returns the task's link.
	 *
	 * @return string|null
	 */
	public function get_link(): ?string {
		return null;
	}

	/**
	 * Completes a task.
	 *
	 * @return void
	 *
	 * @throws Complete_Sample_Page_Task_Exception If the Sample Page could not be deleted.
	 */
	public function complete_task(): void {
		$page = $this->get_sample_page();

		if ( $page !== null ) {
			$result = \wp_delete_post( $page->ID );

			if ( ! $result ) {
				throw new Complete_Sample_Page_Task_Exception();
			}
		}
	}

	/**
	 * Returns the sample page if it exists and is published.
	 *
	 * @return WP_Post|null The sample page or null if not found.
	 */
	private function get_sample_page(): ?WP_Post {
		$pages = \get_posts(
			[
				'name'        => 'sample-page',
				'post_type'   => 'page',
				'post_status' => 'publish',
				'numberposts' => 1,
			],
		);

		if ( empty( $pages ) || $pages[0] instanceof WP_Post === false ) {
			return null;
		}

		return $pages[0];
	}

	/**
	 * Returns the task's call to action entry.
	 *
	 * @return Call_To_Action_Entry|null
	 */
	public function get_call_to_action(): ?Call_To_Action_Entry {
		return new Call_To_Action_Entry(
			\__( 'Delete for me', 'wordpress-seo' ),
			'delete',
			$this->get_link(),
		);
	}

	/**
	 * Returns the task's copy set.
	 *
	 * @return Copy_Set
	 */
	public function get_copy_set(): Copy_Set {
		return new Copy_Set(
			\__( 'Remove the "Sample Page"', 'wordpress-seo' ),
			'<p>' . \__( 'Leaving placeholder content makes your site look unfinished and untrustworthy. Removing it keeps your site clean and professional for visitors and search engines.', 'wordpress-seo' ) . '</p>',
		);
	}
}