[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fZKgnoK8hHtaMYM3dd3_8IfRhE8JT5LUDuyS5mZqzAvs":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":11,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":38,"analysis":129,"fingerprints":221},"blogcard-for-wp","SU Blocks Blogcard","2.3.3","Takashi Fujisaki","https:\u002F\u002Fprofiles.wordpress.org\u002Fejointjp\u002F","\u003Cp>WordPress’s standard URL embedding feature only works with WordPress sites.\u003C\u002Fp>\n\u003Cp>This plugin was created to display any link destination as a stylish card with thumbnails.\u003C\u002Fp>\n\u003Cp>Just paste the URL into the block editor. Blog cards are displayed in an instant.\u003C\u002Fp>\n\u003Cp>New features from version 2.0.0 include the ability to create blog cards from site search.\u003Cbr \u002F>\nThis allows you to search for articles within your own site and convert them into blog cards.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Important Notice:\u003C\u002Fstrong>\u003Cbr \u002F>\n  Starting from version 2.1.0, the block is rendered dynamically on the server side to improve stability.\u003Cbr \u002F>\n  \u003Cstrong>Note:\u003C\u002Fstrong> Manual edits made via “Edit as HTML” will be reset to the standard design.\u003Cbr \u002F>\n  If you see “Attempt Block Recovery” after updating, please click the button to recover the block.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Easy Operation\u003C\u002Fstrong>: Simply enter a URL and press Enter to instantly generate a blog card\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Universal Compatibility\u003C\u002Fstrong>: Works with non-WordPress sites (note, Zenn, Qiita, GitHub, etc.)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic Metadata Fetching\u003C\u002Fstrong>: Automatically retrieves title, description, and thumbnail images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customizable\u003C\u002Fstrong>: Retrieved information can be edited later\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SEO Friendly\u003C\u002Fstrong>: Set rel attributes like nofollow, nofollow, sponsored, ugc\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responsive Design\u003C\u002Fstrong>: Beautiful display on mobile devices\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Caching\u003C\u002Fstrong>: Caches retrieved metadata for fast display\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Site Search\u003C\u002Fstrong>: Search and convert internal posts into blog cards\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dark Mode Support\u003C\u002Fstrong>: Supports dark mode with .dark class\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced Management\u003C\u002Fstrong>: Configure default link targets, cache duration, and manual favicon support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch3>Basic Usage\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Click the ‘+’ button in the post\u002Fpage editor\u003C\u002Fli>\n\u003Cli>Search for and select ‘Blog Card’\u003C\u002Fli>\n\u003Cli>Enter the destination URL in the URL input field\u003C\u002Fli>\n\u003Cli>Press Enter to automatically fetch metadata and generate a blog card\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Advanced Settings\u003C\u002Fh3>\n\u003Cp>When the block is selected, the following settings appear in the right sidebar:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>URL\u003C\u002Fstrong>: Destination URL\u003C\u002Fli>\n\u003Cli>\u003Cstrong>TARGET Attribute\u003C\u002Fstrong>: How to open the link (_blank, _self, etc.)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rel Attributes\u003C\u002Fstrong>: noopener, nofollow, noreferrer, sponsored, ugc\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Thumbnail\u003C\u002Fstrong>: Show\u002Fhide thumbnail image\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Title\u003C\u002Fstrong>: Manual title editing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: Manual description editing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Thumbnail Image\u003C\u002Fstrong>: Manual thumbnail image setting\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For questions about the plugin or bug reports, please use the following methods:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>GitHub Issues: [Plugin repository URL]\u003C\u002Fli>\n\u003Cli>Email: [Support email address]\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Developer Information\u003C\u002Fh3>\n\u003Cp>This plugin is developed using the following technologies:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WordPress Block Editor (Gutenberg)\u003C\u002Fli>\n\u003Cli>React\u003C\u002Fli>\n\u003Cli>WordPress REST API\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you would like to customize or add features, please send a pull request to the GitHub repository.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is released under the GPLv2 or later license.\u003C\u002Fp>\n\u003Ch3>Acknowledgments\u003C\u002Fh3>\n\u003Cp>In developing this plugin, we referenced the following open source projects:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WordPress\u003C\u002Fli>\n\u003Cli>React\u003C\u002Fli>\n\u003Cli>Other open source libraries\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cp>This plugin is actively maintained and developed. Contributions are welcome!\u003C\u002Fp>\n\u003Cp>For development setup and contribution guidelines, please refer to the GitHub repository.\u003C\u002Fp>\n","A WordPress plugin that makes it easy to create blog cards. Simply enter a URL and automatically fetch metadata to display beautiful cards.",100,2617,2,"2026-03-06T14:35:00.000Z","6.9.4","6.4","7.4",[19,20,21,22,23],"blog","blogcard","card","link","url","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fblogcard-for-wp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblogcard-for-wp.2.3.3.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"ejointjp",5,230,94,30,90,"2026-04-04T15:38:49.326Z",[39,62,82,99,114],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":11,"num_ratings":49,"last_updated":50,"tested_up_to":15,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":57,"download_link":58,"security_score":59,"vuln_count":60,"unpatched_count":26,"last_vuln_date":61,"fetched_at":28},"pz-linkcard","Pz-LinkCard","2.5.8.1","ぽぽろん＠ぽぽづれ。","https:\u002F\u002Fprofiles.wordpress.org\u002Fpoporon\u002F","\u003Cp>This plugin is intended to display a link in a blog card format.\u003C\u002Fp>\n\u003Cp>Easy to use. Just to write a short code.\u003C\u002Fp>\n\u003Cp>You can change the appearance in the settings screen.\u003C\u002Fp>\n\u003Cp>You can edit or delete the cache on the manage screen.\u003C\u002Fp>\n\u003Cp>The goodbye to the text-only link.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>It will access to WebAPI for the thumbnail image acquisition and site icon of acquisition. In addition , it will save the title and excerpt statement to the database. For more information you want to read the item of arbitrary section about this.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>このプラグインはショートコードでURLを指定する事で、リンクをブログカード形式で表示させるものです。\u003C\u002Fp>\n\u003Cp>外部リンクと内部リンクで、カードの色や新しくウィンドウを開くか等、設定を変更する事ができます。\u003C\u002Fp>\n\u003Cp>リンク先の情報はキャッシュされるため、ソーシャルカウント等も表示されるカード形式のリンクとしては高速に表示されます。\u003C\u002Fp>\n\u003Cp>カード管理画面から、キャッシュされた情報の再取得や編集、削除等が行えます。\u003C\u002Fp>\n\u003Cp>テキストにリンク設定しただけでは物足りないと感じていたら、ぜひお試しください。\u003C\u002Fp>\n\u003Cp>※このプラグインはサムネイル取得やサイトアイコン取得のためにリンク先URLをWebAPIに送信します。\u003Cbr \u002F>\n※タイトルや抜粋文等をDBへ保存します。詳細は「Arbitrary section」をお読みください。\u003C\u002Fp>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n\u003Ch4>Display and DB cache\u003C\u002Fh4>\n\u003Cp>This plug-in one create a DB table when you have activated. (Prefix + “pz_linkcard”)\u003C\u002Fp>\n\u003Cp>Open the pages of the article when the “For the first time it appears ” , and caches by obtaining the title excerpt from the linked site to the DB.\u003C\u002Fp>\n\u003Cp>Therefore , the display for the first time is slow , the second and subsequent display is fast.\u003C\u002Fp>\n\u003Ch4>Create files\u003C\u002Fh4>\n\u003Cp>CSS file are stored in a custom folder under “\u002Fwp-content\u002FUploads”.\u003C\u002Fp>\n\u003Ch4>Use Web API\u003C\u002Fh4>\n\u003Cp>Number of SNS share have been acquired by the JSON request.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Twitter … https:\u002F\u002Fjsoon.digitiminimi.com\u002Ftwitter\u002Fcount.json?url=[URL]\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Facebook … https:\u002F\u002Fgraph.facebook.com?fields=og_object{engagement}&id=[URL]\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Hatena … http:\u002F\u002Fapi.b.st-hatena.com\u002Fentry.count?url=[URL]\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Pocket … https:\u002F\u002Fwidgets.getpocket.com\u002Fapi\u002Fsaves?url=[URL]\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Displays using the “Google-favicon API” to get the favicon. This can be changed.\u003C\u002Fp>\n\u003Cp>Displays using the “WordPress.org mshots API” to get the thumbnail. This can be changed.\u003C\u002Fp>\n\u003Ch4>表示とキャッシュ\u003C\u002Fh4>\n\u003Cp>このプラグインは、有効化したときにDBテーブルを一つ作成します。（プレフィックス＋「pz_linkcard」）\u003C\u002Fp>\n\u003Cp>外部リンクを設定した場合、記事のページを開いて「初めて表示された」ときに、リンク先のサイトからタイトル・抜粋文を取得してDBへキャッシュします。\u003C\u002Fp>\n\u003Cp>外部リンクを設定した場合、カードの枚数分だけ外部サイトへのアクセスが発生するため多量のリンクを作成すると、記事をプレビューした時等、最初の表示に時間がかかります。\u003C\u002Fp>\n\u003Cp>次回の表示はDBキャッシュから行うので高速に表示を行います。\u003C\u002Fp>\n\u003Cp>（内部でのDBアクセスが発生しますが、通常は軽微なものです。カード1枚表示のたびに、取得のために1クエリ発行します。更新が発生した場合には挿入・更新のためのクエリが1回発生します。）\u003C\u002Fp>\n\u003Ch4>ソーシャルカウントの取得\u003C\u002Fh4>\n\u003Cp>ソーシャルカウントについては、「Twitter（ツイッター）のツイート数」「facebook（フェイスブック）のシェア数」「はてなブックマークのブックマーク数」「Pocketの登録数」の4種類に対応しています。\u003C\u002Fp>\n\u003Cp>それぞれWebAPIを使用して値を取得します。\u003C\u002Fp>\n\u003Cp>バックグラウンドで取得するため、ページの表示速度には影響がありません。\u003C\u002Fp>\n\u003Cp>取得した値はタイトルや抜粋文と同様、DBへキャッシュを行うため、直近の表示にはWebAPIアクセスが発生しません。\u003C\u002Fp>\n\u003Cp>ソーシャルカウントの再取得は、最後の取得から4時間～36時間程度のランダムな時間で行います。\u003C\u002Fp>\n\u003Cp>また、各WebAPIについては、仕様変更やサービス終了に伴い、正常に取得できなくなる場合があります。\u003C\u002Fp>\n\u003Ch4>画像取得WebAPIの利用\u003C\u002Fh4>\n\u003Cp>設定画面からサムネイル取得WebAPIが指定できます。\u003C\u002Fp>\n\u003Cp>「WebAPIを利用する」にする事でページのスクリーンショット画像を取得します。\u003C\u002Fp>\n\u003Cp>参考．画像取得WebAPIの設定について https:\u002F\u002Fpopozure.info\u002F20151004\u002F9317\u003C\u002Fp>\n\u003Cp>設定画面からサイトアイコン取得WebAPIが指定できます。\u003C\u002Fp>\n\u003Cp>サイトアイコンの場所はサイトによってバリエーションが多いため、WebAPIを使用する前提となります。\u003C\u002Fp>\n\u003Cp>正式に公開されているWebAPIでは無いため、仕様変更やサービス終了に伴い、正常に取得できなくなく場合があります。\u003C\u002Fp>\n\u003Ch4>その他\u003C\u002Fh4>\n\u003Cp>Pz-HatenaBlogCard からの設定引き継ぎ機能はありません。この機会に触った事のなかった設定項目にも触れていただければ幸いです。\u003C\u002Fp>\n\u003Cp>ショートコードを変える事で、Pz-HatenaBlogCard と併用利用する事ができますが、通常はリソース消費が増えるだけなので、推奨はしません。\u003C\u002Fp>\n\u003Cp>ショートコード内にURLを記述した場合、WordPressピンバックは飛びません。\u003C\u002Fp>\n\u003Cp>設定項目については、WordPress標準の options に設定内容を保存します。キーは「Pz-LinkCard_options」の1レコードです。\u003C\u002Fp>\n\u003Cp>なお、アンインストールを行う際には、キャッシュを保管するDBテーブルと、options内の設定ファイルは削除されます。\u003C\u002Fp>\n\u003Cp>アンインストール時の削除に関してはプラグインディレクトリ内の uninstall.php で行っています。\u003C\u002Fp>\n","This plugin is intended to display a link in a blog card format. The goodbye to the text-only link.",20000,699732,9,"2026-03-07T10:12:00.000Z","6.0","8.1.29",[20,54,55,56],"external-link","internal-link","linkcard","http:\u002F\u002Fpopozure.info\u002Fpz-linkcard","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpz-linkcard.zip",96,6,"2025-09-23 00:00:00",{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":11,"num_ratings":72,"last_updated":73,"tested_up_to":15,"requires_at_least":74,"requires_php":75,"tags":76,"homepage":78,"download_link":79,"security_score":80,"vuln_count":13,"unpatched_count":26,"last_vuln_date":81,"fetched_at":28},"simple-blog-card","Simple Blog Card","2.38","Katsushi Kawamori","https:\u002F\u002Fprofiles.wordpress.org\u002Fkatsushi-kawamori\u002F","\u003Ch4>Blog card\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Generated with shortcode\u003C\u002Fli>\n\u003Cli>Generated with block\u003C\u002Fli>\n\u003Cli>Can specify the number of characters displayed in the description.\u003C\u002Fli>\n\u003Cli>Displays an ogp image.\u003C\u002Fli>\n\u003Cli>Can specify the size of the displayed ogp image.\u003C\u002Fli>\n\u003Cli>Can change the title and description.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Warning\u003C\u002Fh4>\n\u003Cp>A redirect loop occurs when all three of the following factors are met:\u003Cbr \u002F>\n* When two sites with different domains embed “Siｍple Blog Card” for each other on their top pages.\u003Cbr \u002F>\n* When two sites with different domains are on the same server (same IP address).\u003Cbr \u002F>\n* When the ”Simple Blog Card” caches of two sites on different domains are empty.\u003C\u002Fp>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FxTicX7DiGjU?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch4>Customize\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Template files allow for flexible \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkatsushi-kawamori\u002FSimple-Blog-Card-Templates\" rel=\"nofollow ugc\">customization\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>The default template file is template\u002Fsimpleblogcard-template.php. Using this as a reference, you can specify a separate template file using the filters below.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode>\u002F** ==================================================\n * Filter for template file.\n *\n *\u002F\nadd_filter(\n    'simple_blog_card_generate_template_file',\n    function () {\n        $wp_uploads = wp_upload_dir();\n        $upload_dir = wp_normalize_path( $wp_uploads['basedir'] );\n        $upload_dir = untrailingslashit( $upload_dir );\n        return $upload_dir . '\u002Ftmp\u002Fsimpleblogcard-template.php';\n    },\n    10,\n    1\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>CSS files can be set separately. Please see the filters below.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode>\u002F** ==================================================\n * Filter for CSS file.\n *\n *\u002F\nadd_filter(\n    'simple_blog_card_css_url',\n    function () {\n        $wp_uploads = wp_upload_dir();\n        $upload_url = $wp_uploads['baseurl'];\n        if ( is_ssl() ) {\n            $upload_url = str_replace( 'http:', 'https:', $upload_url );\n        }\n        $upload_url = untrailingslashit( $upload_url );\n        return $upload_url . '\u002Ftmp\u002Fsimpleblogcard.css';\n    },\n    10,\n    1\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Get OGP and display blog card.",3000,41281,3,"2026-02-05T12:20:00.000Z","6.6","8.0",[77,20,54,55,56],"block","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-blog-card\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-blog-card.2.38.zip",99,"2023-08-03 00:00:00",{"slug":83,"name":84,"version":85,"author":43,"author_profile":44,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":26,"num_ratings":26,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":93,"tags":94,"homepage":96,"download_link":97,"security_score":98,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"pz-hatenablogcard","Pz-HatenaBlogCard","1.3.0","\u003Cp>This plug-in to display a link in the article by using the “Hatena blog card”.\u003C\u002Fp>\n\u003Cp>In the case of internal links to view the card that is similar to “Hatena blog card”.\u003C\u002Fp>\n\u003Cp>Displays using the “Hatena :: Favicon” (http:\u002F\u002Ffavicon.hatena.ne.jp) to get the favicon.\u003C\u002Fp>\n\u003Cp>Displays using the “bookmark number of Hatena blog API” (http:\u002F\u002Fb.hatena.ne.jp\u002Fentry\u002Fimage\u002F) to get the bookmark number of hatena.\u003C\u002Fp>\n\u003Cp>CSS file are stored in a custom folder under \u003Ccode>\u002Fwp-content\u002FUploads\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Released a plugin ” Pz-LinkCard ” that can external-links and internal-links also  change the appearance.\u003Cbr \u002F>\nhttps:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpz-linkcard\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>このプラグインは、ショートコード [blogcard] で指定したURLをカード形式で表示させるものです。\u003C\u002Fp>\n\u003Cp>外部リンクの場合には「はてなブログカード」に置き換えて表示します。\u003C\u002Fp>\n\u003Cp>内部リンクもしくはtitleパラメータを指定した場合、オリジナルのリンクカード形式で表示します。\u003Cbr \u002F>\nこのとき、「Hatena::Favicon」を利用してファビコンを表示します。使用するWebAPIは設定画面にて変更できます。サムネイル画像を取得するWebAPIに設定することができます。「はてなブックマーク件数取得API」を利用してはてなブックマーク数を表示します。\u003C\u002Fp>\n\u003Cp>また、書式を保持するために、\u002Fwp-content\u002FUploads フォルダ配下にスタイルシートを保存します。\u003C\u002Fp>\n\u003Cp>後継として、「はてブカード」の置き換えでは無く、外部リンクも内部リンクもオリジナル形式で表示できる「Pz-LinkCard」を公開しました。\u003C\u002Fp>\n\u003Cp>興味のある方は、そちらもお試しいただけると幸いです。\u003C\u002Fp>\n\u003Cp>https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpz-linkcard\u002F\u003C\u002Fp>\n","This plug-in to display a link in the article by using the \"Hatena blog card\".",200,8699,"2017-10-17T12:10:00.000Z","4.8.28","3.0","",[20,54,95],"post","http:\u002F\u002Fpoporon.poponet.jp\u002Fpz-hatenablogcard","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpz-hatenablogcard.zip",85,{"slug":100,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":35,"downloaded":107,"rating":26,"num_ratings":26,"last_updated":108,"tested_up_to":109,"requires_at_least":110,"requires_php":93,"tags":111,"homepage":112,"download_link":113,"security_score":98,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"kk-blog-card","kk blog card","1.3","kubotak","https:\u002F\u002Fprofiles.wordpress.org\u002Fkenz60\u002F","\u003Cp>以下のショートコードを入力することで簡単にブログカードを表示することができます。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[blog-card href=\"\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>リンクさせたいページのURLを\u003Ccode>href\u003C\u002Fcode>に設定してください。\u003Cbr \u002F>\nエディターのblogCardアイコンから追加モーダルを利用して簡単に上記ショートコードを挿入することもできます。\u003Cbr \u002F>\n非同期でブログカードが生成されるのでページの表示速度を損なうことは最小限に設計されています。\u003C\u002Fp>\n\u003Cp>Attention\u003Cbr \u002F>\nブログカード生成時に取得したリンクサイトのデータは1日間保持されます。\u003C\u002Fp>\n\u003Ch3>Arbitrary section 1\u003C\u002Fh3>\n","ショートコードを利用してブログカードを表示するプラグイン",1857,"2018-03-05T15:56:00.000Z","4.9.29","4.9.4",[20,56],"https:\u002F\u002Fgithub.com\u002Fkubotak-is\u002Fkk-blog-card","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkk-blog-card.1.3.zip",{"slug":115,"name":116,"version":117,"author":118,"author_profile":119,"description":120,"short_description":121,"active_installs":26,"downloaded":122,"rating":26,"num_ratings":26,"last_updated":123,"tested_up_to":15,"requires_at_least":51,"requires_php":17,"tags":124,"homepage":127,"download_link":128,"security_score":11,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"wwi-blogcard","WWI Blogcard","1.0.11","whywaita","https:\u002F\u002Fprofiles.wordpress.org\u002Fwhywaita\u002F","\u003Cp>WWI Blogcard is a Gutenberg block plugin that creates visually appealing blog cards from any URL. Simply paste a URL, and the plugin automatically fetches OGP (Open Graph Protocol) information to generate a rich preview card.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Easy to use\u003C\u002Fstrong>: Just paste a URL and the blog card is automatically generated\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OGP support\u003C\u002Fstrong>: Fetches title, description, and images from OGP meta tags\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responsive design\u003C\u002Fstrong>: Cards look great on any device\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dark mode support\u003C\u002Fstrong>: Automatic dark mode based on system preferences\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Caching\u003C\u002Fstrong>: OGP data is cached for improved performance\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security\u003C\u002Fstrong>: SSRF protection blocks requests to private IP addresses\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Add a new “Blogcard” block in the Gutenberg editor\u003C\u002Fli>\n\u003Cli>Paste the URL you want to create a card for\u003C\u002Fli>\n\u003Cli>Click “Fetch” to retrieve OGP information\u003C\u002Fli>\n\u003Cli>The blog card is automatically generated\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Source Code\u003C\u002Fh3>\n\u003Cp>The source code for this plugin, including uncompiled JavaScript and CSS files, is available on GitHub:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwhywaita\u002Fwwi-blogcard\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fwhywaita\u002Fwwi-blogcard\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Building from Source\u003C\u002Fh4>\n\u003Cp>To build the plugin from source, you need Node.js and npm installed. Then run the following commands:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Clone the repository: \u003Ccode>git clone https:\u002F\u002Fgithub.com\u002Fwhywaita\u002Fwwi-blogcard.git\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Navigate to the plugin directory: \u003Ccode>cd wwi-blogcard\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Install dependencies: \u003Ccode>npm install\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Build the plugin: \u003Ccode>npm run build\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>The build process uses \u003Ccode>@wordpress\u002Fscripts\u003C\u002Fcode> to compile and minify the JavaScript and CSS files from the \u003Ccode>src\u002F\u003C\u002Fcode> directory to the \u003Ccode>build\u002F\u003C\u002Fcode> directory.\u003C\u002Fp>\n","A WordPress block plugin that generates beautiful blog cards from URLs using OGP information.",165,"2026-02-23T16:29:00.000Z",[20,21,125,22,126],"embed","ogp","https:\u002F\u002Fgithub.com\u002Fwhywaita\u002Fwwi-blogcard","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwwi-blogcard.1.0.11.zip",{"attackSurface":130,"codeSignals":190,"taintFlows":212,"riskAssessment":213,"analyzedAt":220},{"hooks":131,"ajaxHandlers":161,"restRoutes":162,"shortcodes":187,"cronEvents":188,"entryPointCount":189,"unprotectedCount":26},[132,139,144,148,152,157],{"type":133,"name":134,"callback":135,"priority":136,"file":137,"line":138},"filter","block_categories_all","wpbc_block_categories",10,"blogcard-for-wp.php",43,{"type":140,"name":141,"callback":142,"file":137,"line":143},"action","enqueue_block_editor_assets","wpbc_enqueue_editor_assets",56,{"type":140,"name":145,"callback":146,"file":137,"line":147},"init","wpbc_init",58,{"type":140,"name":149,"callback":150,"file":137,"line":151},"rest_api_init","wpbc_rest_api_init",160,{"type":140,"name":153,"callback":154,"file":155,"line":156},"admin_menu","wpbc_add_admin_menu","includes\\admin-settings.php",23,{"type":140,"name":158,"callback":159,"file":155,"line":160},"admin_init","wpbc_register_settings",70,[],[163,171,177,182],{"namespace":164,"route":165,"methods":166,"callback":168,"permissionCallback":169,"file":137,"line":170},"wpbc\u002Fv1","\u002Fmetadata",[167],"POST","wpbc_get_metadata","closure",84,{"namespace":164,"route":172,"methods":173,"callback":175,"permissionCallback":169,"file":137,"line":176},"\u002Finternal-metadata",[174],"GET","wpbc_get_internal_metadata",103,{"namespace":164,"route":178,"methods":179,"callback":180,"permissionCallback":169,"file":137,"line":181},"\u002Fsearch",[174],"wpbc_search_posts",122,{"namespace":164,"route":183,"methods":184,"callback":185,"permissionCallback":169,"file":137,"line":186},"\u002Fclear-cache",[167],"wpbc_clear_cache",141,[],[],4,{"dangerousFunctions":191,"sqlUsage":192,"outputEscaping":203,"fileOperations":26,"externalRequests":72,"nonceChecks":26,"capabilityChecks":189,"bundledLibraries":211},[],{"prepared":193,"raw":72,"locations":194},7,[195,198,200],{"file":137,"line":196,"context":197},599,"$wpdb->query() with variable interpolation",{"file":137,"line":199,"context":197},616,{"file":201,"line":202,"context":197},"uninstall.php",22,{"escaped":13,"rawEcho":13,"locations":204},[205,209],{"file":206,"line":207,"context":208},"includes\\migration-lito-to-su.php",80,"raw output",{"file":206,"line":210,"context":208},81,[],[],{"summary":214,"deductions":215},"The plugin \"blogcard-for-wp\" v2.3.3 exhibits a generally good security posture based on the provided static analysis.  It has a relatively small attack surface with all identified entry points (REST API routes) protected by permission callbacks. The absence of dangerous functions, file operations, and critical or high-severity taint flows is encouraging. The plugin also demonstrates awareness of security practices by utilizing prepared statements for a majority of its SQL queries and performing output escaping, albeit with a moderate success rate.\n\nHowever, several areas present potential concerns. The lack of nonce checks across all entry points, particularly for AJAX handlers (even though there are none currently), is a notable weakness. While there are no known vulnerabilities in its history, this does not guarantee future immunity. The fact that 50% of outputs are not properly escaped could lead to cross-site scripting (XSS) vulnerabilities if the unescaped data is user-controlled or dynamic.\n\nIn conclusion, \"blogcard-for-wp\" v2.3.3 has a solid foundation, but it can be significantly improved. The primary areas for attention are implementing nonce checks for all potential entry points and ensuring all output is properly escaped to mitigate XSS risks. The absence of past vulnerabilities is a positive sign, but proactive security measures are crucial for long-term safety.",[216,218],{"reason":217,"points":136},"No nonce checks on entry points",{"reason":219,"points":60},"50% of outputs not properly escaped","2026-03-16T21:11:54.396Z",{"wat":222,"direct":232},{"assetPaths":223,"generatorPatterns":227,"scriptPaths":228,"versionParams":229},[224,225,226],"\u002Fwp-content\u002Fplugins\u002Fblogcard-for-wp\u002Fbuild\u002Findex.js","\u002Fwp-content\u002Fplugins\u002Fblogcard-for-wp\u002Fbuild\u002Fstyle-index.css","\u002Fwp-content\u002Fplugins\u002Fblogcard-for-wp\u002Fbuild\u002Findex.asset.php",[],[224],[230,231],"\u002Fwp-content\u002Fplugins\u002Fblogcard-for-wp\u002Fbuild\u002Findex.js?ver=","\u002Fwp-content\u002Fplugins\u002Fblogcard-for-wp\u002Fbuild\u002Fstyle-index.css?ver=",{"cssClasses":233,"htmlComments":235,"htmlAttributes":236,"restEndpoints":242,"jsGlobals":247,"shortcodeOutput":249},[234],"wpbc-blogcard",[],[237,238,239,240,241],"data-wpbc-title","data-wpbc-description","data-wpbc-thumbnail","data-wpbc-domain","data-wpbc-url",[243,244,245,246],"\u002Fwp-json\u002Fwpbc\u002Fv1\u002Fmetadata","\u002Fwp-json\u002Fwpbc\u002Fv1\u002Finternal-metadata","\u002Fwp-json\u002Fwpbc\u002Fv1\u002Fsearch","\u002Fwp-json\u002Fwpbc\u002Fv1\u002Fclear-cache",[248],"window.wpbcSettings",[250],"[blogcard]"]