Skip to main content

All in one seo の schemaの出力を削除して 代わりにエラーのないschemaを出力する

By 2025年8月26日WPプラグイン2 min read

All in one seo schema にエラーが多かったので、functions.php で All in one seo schema の出力を削除して
代わりにエラーのないschemaを出力する

// All in one seo schema の出力削除
add_filter( 'aioseo_schema_disable', '__return_true' );
/** 各ページschema **/
function json_article() {
/** 表示ページのWPオブジェクトを取得 **/
$post = get_queried_object();
/** 投稿者情報を取得 **/
$author = get_userdata( $post->post_author );
$author_name = $author->display_name; // 表示名
$author_url = $author->user_url; // サイト
$permalink = ( empty($_SERVER["HTTPS"] ) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
/**
* 除外設定
**/
if( is_admin() ) { return false; }
/** 各種詳細 & トップページ **/
if ( is_singular() || is_page() || is_home() || is_front_page() ) {
if( has_post_thumbnail() ) {
/** アイキャッチ画像 **/
$image_url = get_the_post_thumbnail_url();
} else {
$image_url = 'https://ecomix.jp/wp-content/uploads/2022/05/ecocarat-antiquemarble-02-ECP-615AMB2N.jpg';
}
if( is_home() || is_front_page() ) {
$title = get_bloginfo( 'name' );
} else {
$title = get_the_title() . ' | ' . get_bloginfo( 'name' );
}
if ( is_home() || is_front_page() ) {
// ホームでは、ブログの説明文を取得
$description = get_bloginfo( 'description' );
}
elseif ( is_category() ) {
// カテゴリーページでは、カテゴリーの説明文を取得
$description = category_description();
}
elseif ( is_single() || is_singular() || is_portfolio() || is_page() ) {
if ($post->post_excerpt) {
// 記事ページでは、記事本文から抜粋を取得
$description = $post->post_excerpt;
} else {
// post_excerpt で取れない時は、自力で記事の冒頭160文字を抜粋して取得
$description = strip_tags($post->post_content);
$description = preg_replace('#\[[^\]]+\]#', '',$description);
$description = str_replace("\n", "", $description);
$description = str_replace("\r", "", $description);
$description = mb_substr($description, 0, 160) . ".....";
}
}
$json_article = array(
"@context" => "https://schema.org",
"@type" => "Article",
"mainEntityOfPage" => array(
"@type" => "WebPage",
"@id" => esc_url( $permalink ),
),
"headline" => $title,
"image" => array(
$image_url,
),
"datePublished" => get_the_time( 'c' ),
"dateModified" => get_the_modified_time( 'c' ),
"description" => ( $description ),
"author" => array(
"@type" => "Person",
"name" => $author_name,
"url" => esc_url( $author_url ),
),
"publisher" => array(
"@context" => "http://schema.org",
"@type" => "Organization",
"name" => get_bloginfo( 'name' ),
"description" => get_bloginfo( 'description' ),
"url" => "https://ecomix.jp/",
"logo" => array(
"@type" => "ImageObject",
"url" => "https://ecomix.jp/wp-content/uploads/2022/05/ecomix-logo-200-green.png",
),
),
);
echo '';
}
}
add_action( 'wp_head', 'json_article' );

IY