WP_Queryを使わないループで特定のカテゴリのみ表示してページャーもつける

Woocommerce の商品カテゴリ

 [highlight_php]
/* データの表示指定 */
$type =15;  // カテゴリID 
$item_count = 6; //1ページに表示したいアイテム数 
$sp = empty($_GET['pg']) ? 1 : $_GET['pg'] ;

$field = "SELECT object_id , p.post_title ,post_content,post_date,post_excerpt,post_name,
p.post_type , p.post_status, m.stock_quantity , m.min_price, m.max_price ,meta_value" ;

$query = "
FROM `$wpdb->term_relationships` as t
left join $wpdb->posts as p on p.id = t.object_id 
left join `$wpdb->wc_product_meta_lookup` as m on m.product_id = t.object_id 
left join `$wpdb->postmeta` as e on e.post_id = t.object_id 
WHERE `term_taxonomy_id` = %d AND p.post_type = 'product' AND p.post_status = 'publish' 
AND e.meta_key = '_price' " ;

$sql = $field . $query ." LIMIT %d, $item_count;";

$results = $wpdb->get_results( $wpdb->prepare( $sql ,$type ,($sp-1)*$item_count) );
foreach($results as $row) var_dump($row);
[/highlight_php]


このページのページャー

[highlight_php] <?php /* 以下、ページャーの表示 */ $field = "SELECT count(*) "; $sql = $field . $query ; $product_count = $wpdb->get_var( $wpdb->prepare( $sql , $type) ); $product_page = ceil( $product_count/$item_count); //ページ数 ?> <nav class="undernav pagination"> <?php if( $sp > 1){ echo ''; } ?> Page of <?php for( $i=1 ; $i <= $product_page; $i++){ if( $i == $sp ){ echo '', $i,''; }else{ echo '',$i,''; } } if( $sp < $product_page){ echo ''; } ?> [/highlight_php]

外部のコラボレータをGithubリポジトリに追加する

https://help.github.com/ja/github/setting-up-and-managing-organizations-and-teams/adding-outside-collaborators-to-repositories-in-your-organization

外部のコラボレータを Organization のリポジトリに追加する

外部のコラボレータは、Organization の明示的なメンバーではありませんが、Organization の 1 つ以上のリポジトリに読み取り、書き込み、あるいは管理権限を持っている人です。

Organization のオーナー権限もしくはリポジトリの管理者権限を持つメンバーだけが、
add outside collaborators to a repository, unless an organization owner has restricted the ability to invite collaborators. For more information, see “Setting permissions for adding outside collaborators.”

外部コラボレータをプライベートリポジトリに追加すると、Organizationの有料シートが使われます。 詳しい情報については、「ユーザごとの価格付けについて」を参照してください。

Organization がメンバーおよび外部コラボレーターに 2 要素認証を使うことを求めるなら、メンバーおよび外部コラボレーターはあなたからの Organization のリポジトリでのコラボレーションの招待を受諾する前に、2 要素認証を有効化しなければなりません。

リポジトリに外部コラボレータを追加する際には、アクセスしてもらうリポジトリ内のフォークにもそのコラボレータを追加しなければなりません。

  1. GitHubで、リポジトリのメインページにアクセスしてください。

  2. リポジトリ名の下で Settings(設定)をクリックしてください。

    リポジトリの設定ボタン

  3. In the left sidebar, click Manage access.

    "Manage access" tab

  4. To the right of “Manage access”, click Invite teams or people.

    "Invite teams or people" button

  5. In the search field, start typing the name of person you want to invite, then click a name in the list of matches.

    Search field for typing the name of a person to invite to the repository

  6. Under “Choose a role”, select the permissions to grant to the person, then click Add NAME to REPOSITORY.

    Selecting permissions for the person

参考リンク

返答が正しい JSON レスポンスではありません。

#: wp-includes/js/dist/api-fetch.js:705
msgid "The response is not a valid JSON response


CentOSなら

Apache設定ファイルでmode rewriteを有効にする

  <Directory "/var/www/html">
    Options Indexes FollowSymLinks
     AllowOverride All  ←これ
    Require all granted
 </Directory>

Apache再起動

.htaccess が作られていないので以下の操作で作らせる
管理画面 → 設定 → パーマリンク
◎ 基本 → 保存
◎カスタム [ category / posttitle]

保護中: centOS 7にMySQL Apacheをインストール

このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。

保護中: centos7 php7.3 Postfixインストール

このコンテンツはパスワードで保護されています。閲覧するには以下にパスワードを入力してください。

2. centos7 インターネットへの接続確認


ipアドレスの確認


こんな感じに出る。

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
            link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
            inet 127.0.0.1/8 scope host lo
                valid_lft forever preferred_lft forever
            inet6 ::1/128 scope host 
                valid_lft forever preferred_lft forever
        2: ens1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
            link/ether 00:1c:c4:cc:a7:16 brd ff:ff:ff:ff:ff:ff
            inet 192.168.0.4/24 brd 192.168.0.255 scope global dynamic ens1   ←これがv4のIP
                valid_lft 2763sec preferred_lft 2763sec
            inet 192.168.0.5/24 brd 192.168.0.255 scope global secondary ens1 ← これも
                valid_lft forever preferred_lft forever                     
            inet6 240f:51:16c8:1:21c:c4ff:fecc:a716/64 scope global noprefixroute dynamic 
                valid_lft 297sec preferred_lft 297sec
            inet6 fe80::21c:c4ff:fecc:a716/64 scope link 
                valid_lft forever preferred_lft forever
        
        

OSバーションチェック

rootユーザーへの切り替え

rootのパスワードを入れる
パスワードが認証されるとプロンプトが”$”から”#”に変わります。

一般ユーザーへの切り替えは”exit”コマンドを入力します

まず、selinuxを無効化します。selinuxはLinuxの監査やセキュリティを向上させる機能ですが、有効になっているとサービスの動作や、設定内容にかなりの制限が出てきます。そのため、基本的には無効にする場合が多いのが実

2-1. selinuxの状態を確認

selinuxが有効になっているかの確認はgetenforceコマンドで行います。(基本的にデフォルトで有効になっています。)以下のようにgetenforceコマンドを実行して「Enforcing」と表示された場合にはselinuxが有効になっています。

 
 $ getenforce
Enforcing

2-2. selinuxを無効に設定

selinuxを無効にするには/etc/selinux/configファイルを修正します。
修正はviなどのテキストエディターで行います。本記事ではファイルを修正する場合、基本的にviコマンドの利用を前提として記載しております。
設定ファイルをviコマンドで開きます。

configファイルの修正点は

 
     SELINUX=enforcing
                                

になります。このパラメーターを

 
     SELINUX=disabled
             

CentOSが起動しなくなった場合はインストールメディアを使ってリカバリモードで起動後、configファイルを修正することで起動できるようになります。

ファイルの修正後、サーバーを再起動して、ログインできる状態になったら、再度、getenforceコマンドでselinuxの設定状況を確認します。以下のように実行結果としてDisabledと表示されれば、selinuxは正常に無効化されています。

   $ getenforce
Disabled

これでselinuxの無効化は完了です。

一般ユーザー の作成

(ユーザー名 任意)

パスワードうんぬん 
	wert3333
	x2回

(ユーザーの確認)

今作ったユーザーに管理者コマンドを使える権限を与える

# visudo  エディタが開く
 %wheel  ALL=(ALL)  ALL の % を消す
 :wq 上書き終了

作ったユーザーを登録
ginzoのグループを確認
→ ginzo : ginzo wheel と出てればOK

ポートの開放状況を確認

:22 だけ開放されている

Linux firewalldでポート開放する方法(RHEL/CentOS7系)

開放するポートを追加

先頭の#はroot権限を表すプロンプトなので貼り付けないこと!

http 80番を開放

ftp 21番を開放

一応 sslの 443番を開放

設定の有効化

設定状態の確認


公開しているサーバーならここで rootログインの無効化、とパスワード認証の無効→鍵認証有効化を行うがローカル環境なので省略する

デフォルトゲートウェイの設定方法

ip固定にして DNS を変更する場合こやる

ens1はnicのハードウェアにつけられた管理上の名前

	
        TYPE="Ethernet"
        BOOTPROTO="dhcp"
        DEFROUTE="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_FAILURE_FATAL="no"
        NAME="ens1"
        UUID="53056463-a9a4-438d-9b2c-20b5f3bfbd49"
        DEVICE="ens1"
        ONBOOT="yes"
        IPADDR=192.168.0.5
        PREFIX=24
        DNS1=8.8.8.8
        DNS2=8.8.4.4
        PEERDNS=yes
        PEERROUTES=yes
        IPV6_PEERDNS=yes
        IPV6_PEERROUTES=yes
        
    

インターネットへの接続確認

curlコマンドはweb上のURLを読み込んで文字列をコンソールに表示する

htmlのコードが見えればOK

Please upgrade your ACME client to a version that supports ACMEv2 / RFC 8555

Let’s encriptの導入でcertbotの実行時エラーを返すようになったのでその解決法

 
# certbot certonly --webroot --webroot-path /var/www/html/ -d domain -m email@yahoo.co.jp

An unexpected error occurred:
The client lacks sufficient authorization :: Account creation on ACMEv1 is disabled. Please upgrade your ACME client to a version that supports ACMEv2 / RFC 8555
 

certbotをここから入れ直す。単に上書きで入れていい。
https://certbot.eff.org/lets-encrypt/ubuntubionic-apache

Choose how you’d like to run Certbot
Either get and install your certificates…
Run this command to get a certificate and have Certbot edit your Apache configuration automatically to serve it, turning on HTTPS access in a single step.

 
$sudo certbot --apache

Enter email address (used for urgent renewal and security notices)
メールアドレスを入力してください(緊急の更新およびセキュリティ通知に使用)  入れてEnter
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a   ← 承諾する

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n	← その他メールはいらない

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2  ← 2 httpsを強制する

で終了

つづいてApacheのSSL設定

# vi /etc/apache2/sites-available/default-ssl.conf
以下はこちらの記事の通り
 

WordPress サブディレクトリにインストール ドキュメントルートでアクセス

http://domain.com/wp/へインストールし、http://domain.com/ でトップページが開けるようにするというもの
[index.php]
domain.com/ に置く
書き換え

 
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
 

WordPress アドレス (URL) http://domain.com/wp/
サイトアドレス (URL) http://domain.com/