メモ。
wp_get_archives()を投稿数あり('show_post_count' => true)で取得し、出力はせずstrip_tags(wp_get_archives($args))のようにタグを除去して正規表現で色々書き換える際、どうしても半角スペースが削除できなかった。
具体的には
2021年5月 (1)
とある文字列から (1)、半角スペース+数字入りカッコを除去したいが
preg_replace('/ ([^)]*)$/', '', $value);
としても半角スペースだけ消えない。
どうやらこの半角スペースは文字コードC2A0、つまりhtmlの半角スペース 「 」でした。
wp_get_archives()はhtmlを出力するテンプレートタグですもんね。
なのでダイレクトに
preg_replace('/ ([^)]*)$/', '', $value);
とすることで解決。
PHPで一度REST APIをサイト内に取り込み、静的ページのjsで取得することでクロスドメイン制限を回避。
log.php
$data = json_decode(file_get_contents('https://example.com/wp-json/wp/v2/posts?_embed')); foreach ($data as $value) { $title = $value->title->rendered; $link = $value->link; $year = substr($value->date, 0, 4); $month = substr($value->date, 5, 2); $day = substr($value->date, 8, 2); $date = $year . '/' . $month . '/' . $day; echo '<li><a href="' . $link . '" target="_blank">' . $date . ' ' . $title . '</a></li>'; }
javascript
function HTML_Load(_html, replace) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", _html, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { var data = xmlhttp.responseText; var elem = document.getElementById(replace); console.log(elem); elem.innerHTML = data; return data; } } xmlhttp.send(null); } HTML_Load('log.php', 'id-name'); //挿入したいid名
WordPressブログから静的サイトに記事を取得し、javascriptで表示する (REST API)
No Comment html,css,php,wordpressjavascript,REST API,Vanilla JS,wordpress静的サイト(example.com)にWordpressブログ(blog.example.com)から投稿記事を取得する備忘録。
例) 他Wordpressブログから、2020年の投稿記事を10件取得して2020年1月1日以降の記事を表示。
※クロスドメイン制約により、ドメインをまたいで取得することは出来ない。
(その場合はJSONPを使うなりPHP使うなりFeedから取り込むなり)
var root = document.getElementById("id-name");//読み込み先サイトのID function getRequest(props) { var xhr = new XMLHttpRequest(); xhr.open("GET", encodeURI(props.uri)); xhr.onload = function () { if (xhr.status !== 200) { console.log('Status error'); } else { props.callback(JSON.parse(xhr.responseText)); } }; xhr.send(); } function forEach(props, callback) { for (var i = 0, max = props.length; i < max; i++) { callback(props[i], i) } } getRequest({ uri: "https://blog.example.com/wp-json/wp/v2/posts?page=1&per_page=3&after=2020-01-01T00:00:00", callback: function (posts) { forEach(posts, function (post) { var title = post.title.rendered; var link = post.link; var year = post.date.substr(0, 4); var month = post.date.substr(5, 2); var day = post.date.substr(8, 2); var newElement = document.createElement("li"); newElement.innerHTML = '<a href="' + link + '" target="_blank"><span>' + Number(month) + '/' + Number(day) + '</span><span>' + title + '</span></a>'; root.appendChild(newElement); }) } });
あのZenlogicを使っている案件があり、とにかくコンパネの使いにくさ、度重なるサーバ障害に辟易しているのだが。
現在稼働している他社開発のシステムがphp7で動かない上に、サーバ上で別verのphpを動作させることができない仕様のため、開発をphp5.6で行っている。
で、phpファイルへのキャッシュがかなりきつく、反映にやたら時間がかかるので、当該サイトのZend OPCacheを停止。
サイトルートの.htaccessの先頭に
php_flag opcache.enable Off
を付加。
EC-CUBE Version 3.0.16
商品マスター、受注マスター、会員マスターページでは、遷移してから「検索する」を押さないと全検索結果が表されないので、アクセス時に全検索結果が表示されるように改修。
/app/template/admin/Customer/index.twig
/app/template/admin/Product/index.twig
/app/template/admin/Order/index.twig
各ファイルのjavascriptが書かれている40行目
$(function() {
の次の行に
if($("#result_list_main").length == 0){ $("#search_form").submit(); }
ペースト。
※/app/template/admin 以下が空の場合は、テンプレートファイル
/src/Eccube/Resource/template/admin/
の中身をコピーしてアップしておく。
上記ソースそのものを変更しないこと。
参考URL