PHPも学びたい言語のひとつで、左近和尚のところでまたグレンコが講演会やるそうなので援護
画面下部に私の方のかわいいNewsBloggerテンプレートのPHP、Functions.phpを載せました
このHTMLを打つと下部部分が表示されなくなるため苦肉の策です
WordPressテーマで、リンクを共有したときにリンク元のサムネイルが表示されるようにするには、Open Graphメタタグをテーマに追加する必要があるとのことで、
以下のコードを追加
1. Open Graphメタタグの追加
functions.php
に追加します。これにより、Open Graphメタタグがヘッダーに追加され、共有時に適切なサムネイルが表示されるはずなのだけど、思ってたんと違う結末。
HPで設定している:モノだけになっている
php// Open Graphメタタグを追加
function add_open_graph_tags() {
if (is_single() || is_page()) {
global $post;
// サムネイル画像を取得
if (has_post_thumbnail($post->ID)) {
$thumbnail_id = get_post_thumbnail_id($post->ID);
$thumbnail_url = wp_get_attachment_image_src($thumbnail_id, 'full')[0];
} else {
$thumbnail_url = 'デフォルトのサムネイルURL'; // デフォルトのサムネイル画像を指定
}
// タイトル
$title = get_the_title($post->ID);
// 説明
$description = get_the_excerpt($post->ID);
// Open Graphメタタグの出力
echo '<meta property="og:title" content="' . esc_attr($title) . '"/>' . "\n";
echo '<meta property="og:description" content="' . esc_attr($description) . '"/>' . "\n";
echo '<meta property="og:image" content="' . esc_url($thumbnail_url) . '"/>' . "\n";
echo '<meta property="og:url" content="' . esc_url(get_permalink($post->ID)) . '"/>' . "\n";
echo '<meta property="og:type" content="website"/>' . "\n";
}
}
add_action('wp_head', 'add_open_graph_tags');
2.デフォルトのサムネイル画像の設定
上記のコード内の デフォルトのサムネイルURL
の部分には、サムネイルがない場合に表示するデフォルトの画像URLを設定します。これにより、投稿にサムネイルが設定されていない場合でも、指定した画像が表示されます。
3. テストと確認
このコードを追加した後、投稿やページを作成して公開し、リンクを他のプラットフォーム(例えばFacebookやTwitter)で共有してみてください。リンクを共有すると、指定したサムネイル画像が表示されるはずです。
4. 注意点
- サムネイル画像のサイズは、Open Graphの推奨サイズ(1200×630ピクセル)にすることをお勧めします。これにより、リンク共有時に画像がきれいに表示されます。
- Facebookなどのプラットフォームでは、キャッシュを持っているため、変更がすぐに反映されない場合があります。その場合は、Facebook Sharing Debuggerを使用して、URLのデバッグを行うと良いでしょう。
以下が混じりけのないものなはずなんだけど・・・
なぜや初期に戻そうとしたエラーになって更新できなかった
何故だろうと思ったんだけど、これは課金しないと動かないテーマなのかもしれない。
頑張って翻訳してみたんだけど見つけることはできなかった
name) || ( 'Newsup Child' == $newsup_theme_start->name) || ( 'Newsberg' == $newsup_theme_start->name) || ( 'Newsbulk' == $newsup_theme_start->name) ||
( 'Newslay' == $newsup_theme_start->name) || ( 'Foodup' == $newsup_theme_start->name) || ( 'News Live' == $newsup_theme_start->name) ||
( 'Mag Dark' == $newsup_theme_start->name) || ( 'News Talk' == $newsup_theme_start->name) || ( 'News Way' == $newsup_theme_start->name) || ( 'News Bit' == $newsup_theme_start->name) || ( 'News Maz' == $newsup_theme_start->name) || ( 'News Jack' == $newsup_theme_start->name) || ( 'News Hunt' == $newsup_theme_start->name) || ( 'Max News' == $newsup_theme_start->name) || ( 'Newspaperex' == $newsup_theme_start->name) || ( 'Newswiz' == $newsup_theme_start->name) || ( 'Newsgine' == $newsup_theme_start->name) || ( 'Newsmark' == $newsup_theme_start->name) ) {
if ( is_admin() ) {
require ($newsup_theme_path . '/admin/getting-started.php');
}
}
// Theme version.
$newsup_theme = wp_get_theme();
define( 'NEWSUP_THEME_VERSION', $newsup_theme->get( 'Version' ) );
define ( 'NEWSUP_THEME_NAME', $newsup_theme->get( 'Name' ) );
/*-----------------------------------------------------------------------------------*/
/* Enqueue scripts and styles.
/*-----------------------------------------------------------------------------------*/
require( $newsup_theme_path .'/enqueue.php');
/* ----------------------------------------------------------------------------------- */
/* Customizer */
/* ----------------------------------------------------------------------------------- */
require( $newsup_theme_path . '/customize/customizer.php');
/* ----------------------------------------------------------------------------------- */
/* Customizer */
/* ----------------------------------------------------------------------------------- */
require( $newsup_theme_path . '/widgets/widgets-init.php');
/* ----------------------------------------------------------------------------------- */
/* Widget */
/* ----------------------------------------------------------------------------------- */
require( $newsup_theme_path . '/hooks/hooks-init.php');
require_once( trailingslashit( get_template_directory() ) . 'inc/ansar/customize-pro/class-customize.php' );
/**
* Load Jetpack compatibility file.
*/
if (defined('JETPACK__VERSION')) {
require get_template_directory() . '/inc/ansar/jetpack.php';
}
if ( ! function_exists( 'newsup_setup' ) ) :
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which
* runs before the init hook. The init hook is too late for some features, such
* as indicating support for post thumbnails.
*/
function newsup_setup() {
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
* If you're building a theme based on newsup, use a find and replace
* to change 'newsup' to the name of your theme in all the template files.
*/
load_theme_textdomain( 'newsup', get_template_directory() . '/languages' );
// Add default posts and comments RSS feed links to head.
add_theme_support( 'automatic-feed-links' );
/*
* Let WordPress manage the document title.
* By adding theme support, we declare that this theme does not use a
* hard-coded tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( 'title-tag' );
/* Add theme support for gutenberg block */
add_theme_support( 'align-wide' );
add_theme_support( 'responsive-embeds' );
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
*/
add_theme_support( 'post-thumbnails' );
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => esc_html__( 'Primary menu', 'newsup' ),
'footer' => esc_html__( 'Footer menu', 'newsup' ),
) );
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support(
'html5',
array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'style',
'script',
)
);
/*
* Enable support for Post Formats on posts and pages.
*
* @link https://developer.wordpress.org/themes/functionality/post-formats/
*/
add_theme_support( 'post-formats', array( 'image', 'video', 'gallery' ) );
$args = array(
'default-color' => '#eee',
'default-image' => '',
);
add_theme_support( 'custom-background', $args );
// Set up the woocommerce feature.
add_theme_support( 'woocommerce');
// Woocommerce Gallery Support
add_theme_support( 'wc-product-gallery-zoom' );
add_theme_support( 'wc-product-gallery-lightbox' );
add_theme_support( 'wc-product-gallery-slider' );
// Added theme support for selective refresh for widgets.
add_theme_support( 'customize-selective-refresh-widgets' );
// Add support for responsive embedded content.
add_theme_support( 'responsive-embeds' );
//Custom logo
add_theme_support(
'custom-logo',
array(
'unlink-homepage-logo' => true, // Add Here!
)
);
// custom header Support
$args = array(
'default-image' => get_template_directory_uri() .'/images/head-back.jpg',
'width' => '1600',
'height' => '600',
'flex-height' => false,
'flex-width' => false,
'header-text' => true,
'default-text-color' => 'fff',
'wp-head-callback' => 'newsup_header_color',
);
add_theme_support( 'custom-header', $args );
}
endif;
add_action( 'after_setup_theme', 'newsup_setup' );
function newsup_the_custom_logo() {
if ( function_exists( 'the_custom_logo' ) ) {
the_custom_logo();
}
}
add_filter('get_custom_logo','newsup_logo_class');
function newsup_logo_class($html)
{
$html = str_replace('custom-logo-link', 'navbar-brand', $html);
return $html;
}
/**
* Set the content width in pixels, based on the theme's design and stylesheet.
*
* Priority 0 to make it available to lower priority callbacks.
*
* @global int $content_width
*/
function newsup_content_width() {
$GLOBALS['content_width'] = apply_filters( 'newsup_content_width', 640 );
}
add_action( 'after_setup_theme', 'newsup_content_width', 0 );
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
function newsup_widgets_init() {
$newsup_footer_column_layout = esc_attr(get_theme_mod('newsup_footer_column_layout',3));
$newsup_footer_column_layout = 12 / $newsup_footer_column_layout;
register_sidebar( array(
'name' => esc_html__( 'Sidebar Widget Area', 'newsup' ),
'id' => 'sidebar-1',
'description' => '',
'before_widget' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => esc_html__( 'Front-page Content Section', 'newsup'),
'id' => 'front-page-content',
'description' => '',
'before_widget' => ' ',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => esc_html__( 'Front-page Sidebar Section', 'newsup'),
'id' => 'front-page-sidebar',
'description' => '',
'before_widget' => ' ',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer Widget Area', 'newsup' ),
'id' => 'footer_widget_area',
'description' => '',
'before_widget' => ' ',
'before_title' => '',
'after_title' => '
',
) );
}
add_action( 'widgets_init', 'newsup_widgets_init' );
add_filter('wp_nav_menu_items', 'newsup_add_home_link', 1, 2);
function newsup_add_home_link($items, $args){
if( $args->theme_location == 'primary' ){
$item = '' . "" . ' ';
$items = $item . $items;
}
return $items;
}
if ( ! function_exists( 'wp_body_open' ) ) {
/**
* Shim for wp_body_open, ensuring backward compatibility with versions of WordPress older than 5.2.
*/
function wp_body_open() {
do_action( 'wp_body_open' );
}
}
function example() {
console.log('This is a sample code block');
// More lines of code...
}
',
'before_title' => '
Share this content: