記事とユーザー名を結びつける方法
-
お世話になります。
ユーザー名を変更したくて、
ユーザーを新規追加した後、元々使っていたユーザーを消去しました(「すべての投稿とリンクを次のユーザーに割り当てる」は選択しました)。その時点で変更したかったユーザー名を使いつつ記事は残っている状態なのですが、お聞きしたい問題が生まれました。
投稿者:●●●の●●●をクリックしたところ、その人の投稿記事一覧が表示されると思うのですが、そこまでは引継ぎされなかったようなのです。
また、新規に作ったユーザー情報を見ると、引継いだつもりであった投稿数は加算されておらず、その後に書いた記事の数の表示のみとなっております。こうした場合、一括で記事とユーザーを結びつける方法はなにかないのでしょうか?
また、これは放置していても別段問題もないのでしょうか?ご回答頂ければ幸いです。
-
kazuykさま、ご回答ありがとうございます。
1~5 はその通りです。
ちなみに、5に関しましては一括編集で解決はできないのですが、
新規投稿時は問題がなく、過去の記事も投稿の編集画面より投稿者を新規のもので選択し直せば普通に修正できているようではあります。後一点、言い忘れてしまい申しわけありません。
1.投稿一覧に [作成者] がなく [投稿者] になっている。
⇒こちらが購入テンプレートの仕様かどうか回答を待っている状態です。
※「弊社でも初めてお聞きする内容でございましたので…」との回答を頂いたのですが、それが1にもかかってるのか回答待ちです。★プラグインについて★
AddQuicktag
Easy HTTPS (SSL) Redirection
Edit Author Slug
Q2W3 Fixed Widget
の他に
Akismet Anti-Spam (アンチスパム)
Contact Form 7
Google XML Sitemaps
SiteGuard WP Plugin
TinyMCE Advanced
WP Multibyte Patch
で全てになります。★カスタマイズのために子テーマの functions.php に自分で書き込んだコードなどについて★
子テーマは作っておらず(同じ名前のテーマの重複かなにかでテーマに更新してくださいという表示がでてきて、煩わしかったので)、functions.phpは触ったことはありません。
テーマの編集に関しては、faviconの追加時とSearch Consoleの認証時にコードを埋め込んだ程度のことしかしておりません。
また、(テーマについている?)カスタマイズは追加CSSというところに少し足した程度になります。★DBの情報に齟齬が発生について★
phpMyAdmin 等で DB の中身を見ることはできますが、触るのは恐いといった程度の技量です。
※ローカルでのテストなどはまだしておらず、バックアップの復旧テストのために適当なDBを作ってちょっといじったりはしました。1. の現象については、やはりプラグインは関係なさそうですね。
影響しそうなコードも追加されていないので、残る可能性はテーマですが、明確な回答が得られるかどうか微妙な雰囲気ですね。データベースのバックアップは取れますか。
投稿者を1件ずつ手作業で書き換えるのが厳しいようなら、一気に書き換えるコードを書いて提示しますが、さすがに結果を100%保証することはできないるので、バックアップは取ってからにしていただきたいのです。kazuykさま、ご回答ありがとうございます。
データのバックアップは問題なく取れると思っております(仮に問題が起きても自己責任ですので、その辺りは覚悟します)。
ただ、【投稿者を1件ずつ手作業で書き換える】この選択も有といえば有なのでしょうか?
先ほどの3.4に関しては、テーマ購入先からのご回答を待つとして、
5に関しては、現状のDBを放置する形になっても問題自体はないと推測されるものなのでしょうか?
それともDBに関して何かしらのとっておいたほうがいい対策のようなものはあるのでしょうか?それぞれのリスクをどう考えるか、難しいところですよね。
将来的な不安を完全に払拭するのなら、新しい空のDBを作って別ディレクトリに WordPress をインストールし直して作り直すのも一案かもしれません。Duplicator とかを使うとわりと楽ですが、まあ、それなりに大きな工事ですよね。(もし、1~4の原因がテーマなのだとすれば、同じテーマを有効化したら同じことになるかもしれないので、工事が無意味になるかも)
それなら、定期的にバックアップを取りつつ様子を見る、というのも選択肢かもしれません。
5.は、想像したとおりの状況だとすれば、すでに存在しないユーザーが所有者になっている記事が多数残っている状態なので、そのまま放置しておいて問題ないとは言い切れないと思います。何かの処理の際に矛盾が生じる可能性があるかどうか、具体的にはちょっとわかりませんが。
1件ずつ手作業で変更するのも、選択として有だとは思います。件数にもよりますが… 自分なら、対象が100件を超えていたら、手作業は諦めるかな。
一応テーマ購入先からの回答を待ってみて、回答を見てから決断、ですかね。
とりあえず、バックアップはこまめに取っておくほうがいいと思います。kazuykさま、今回も誠にありがとうございました。
WordPressの運営も色々と大変なのですね。
1人では答えが出せない領域なので非常に助かりました。とりあえず、kazuykさまに頂いたアドバイスとテーマ購入先のご回答を照らし合わせて、もう一度考えてみたいと思います。
結果のご報告と共に、また質問させて頂くかもしれませんが、その際もお力を貸して頂けると幸いです。お世話になります。
テーマ購入先のサポータ様から回答を頂きましたが、疑問が残ってしまいましたので再度質問させて頂きます。★★頂いた回答ここから★★
【質問1】
パーマリンク設定をいじってみたのですが、 変化はありませんでした。
(何らかの原因で)DBの情報に齟齬が発生?? していると判断してよろしいのでしょうか?
また何か他に解決策はありませんでしょうか?
【質問2】
これは放置していても別段問題もないのでしょうか?
DBの情報に齟齬が発生? とはデータベースで何か起きてるということからバックアップの復 元レベルでまずいことになってるのでしょうか?前回ご案内の内容では解決しなかったとのこと、 誠に申し訳ございませんでした。
DBに何か齟齬がある可能性も考えられますが、現状では断定しかねるかと存じます。
その意味では一度DBをご確認頂くのもよいかもしれません。
もしそれで作成者の情報がおかしかった場合、直接DBを編集して頂くことで解決する可能性はございます。
放置することの是非については、今後どういった現象が発生するかわからないため
できれば解決したいところではないかと存じます。【質問3】
ワードプレス編集箇所の、投稿一覧の「作成者」のかわりに「投稿者」という記載になっているのですが(この投稿者をいじって一括操作などもできません)、これはテーマの仕様でしょうか?それともそこから何か不具合が起きてるのでしょうか?こちらについてはテーマの仕様が原因かと思われます。
funcitons.phpの下記箇所をコメントアウトして頂くと、
テーマとしての機能は停止しますが
「作成者」という欄は表示されるようになるかと存じます。編集するファイル:funcitons.php
編集する箇所:
// 複数投稿者機能 ——————————————————————————–
require_once ( dirname(__FILE__) . ‘/co-authors-plus/co-authors-plus.php’ );
★★ここまで★★以下、今回の疑問点になります。
【質問1】
DBをご確認、直接DBを編集ということですが、具体的に何をどのようにすればいいものなのでしょうか?
チェックする箇所があるのか、もしくはある程度知識がないと出来ないものなのでしょうか?【質問2】
投稿一覧の「作成者」のかわりに「投稿者」という記載はテーマの仕様とのことなので、「作成者」という欄にこだわる必要はないのでしょうか?
また頂いた回答では、「一括操作での、投稿者(作成者)の変更ができない」ことへのこちらからの質問に触れられていないのですが、その点はDBを編集することで解決させることが必要ということなのでしょうか?ご回答頂けますと幸いです。
「作成者」項目がないのはやはりテーマの仕様だったのですね。すっきりしました。
おそらくその”仕様”の影響で、クイック編集パネルや一括編集パネルに「作成者」欄が表示されなくなっているのでしょう。DBを直接見たり編集したりするのは、慣れていないと怖いと思いますので、最後の手段にする方がいいでしょうね。所有者不明になってしまった記事の post_author フィールドがどうなっているのか(多分、削除したユーザーのユーザーIDのままになっているのだろうと想像していますが)、見てみたい気はしますが、うっかり変なところを触ってしまうとまずいので・・・
一括編集ができるようになれば、このトピックの始めの方でお伝えした手順で、作成者が空欄になってしまっている記事を一括して新ユーザー所有に変更すればよいので、DBを直接編集する必要はなくなります。
まずは、念のためDBのバックアップを取ってください。
次に、テーマ購入先からの回答にしたがって、functions.php の該当箇所をコメントアウトして、投稿一覧画面でクイック編集と一括編集パネルを見てみてください。
作成者欄が復活していたら、作成者を一括変更してみてください。
それですべての記事の作成者が新ユーザーになって、新ユーザーの所有投稿数が全投稿数と一致するようになれば、「DBの情報の齟齬」は解決したと考えていいと思います。その後、コメントアウトした箇所を元に戻すかどうかですが・・・
その「複数投稿者機能」というものを実際に利用されているのでしょうか。ユーザーを削除したときに、投稿の作成者が新ユーザーに引き継がれなかった原因も、その機能が影響していたのでは・・・という気もします。まあ、今後は既存ユーザーを削除しなければいいのかもしれませんが。
デフォルトの状態ではそういうことは起こらないはずです。
そのテーマがWordPressに普通に保存されているユーザー情報では無く、独自にそういった情報を追加したと言うことであれば、WordPressの標準の機能は難しいのかなと。手始めに、テーマをTwentyseventeen 等に一時的に変更し、プラグインなども無効にしてみた場合に、作成者の齟齬などははっせいするのでしょうか?
kazuykさま、Toro_Unitさま、ご回答ありがとうございます。
「作成者」項目の件は、お騒がせしてしまい申しわけありません。
不具合でなかったことについては、ひとまずホッとしました。引き続き質問させて頂きます。
●functions.php の該当箇所をコメントアウト…してみたところ●
作成者欄はでてくるものの、一括編集はできない状態です。
が、この段階で、投稿者(作成者)に割り当てられていなかった全ての記事が、一つの作成者にまとめられました(サイトを見た感じも望む形になってるのかと思います)。
ただ、コメントアウトした箇所を元に戻すと、以前の投稿者(作成者)がいない状態にもどります。●コメントアウトした箇所を元に戻すか…「複数投稿者機能」…について●
「複数投稿者機能」というのは、現状は利用しておりません。
が、今後、新規ユーザーは追加したいとも思っております。
※ユーザーの削除と引継ぎは、現状の問題が把握出来ない限り手をだしません。●テーマをTwentyseventeen 等に一時的に変更することについて●
テーマを変えて、現在使ってるテーマに戻す事で、なにかしらの影響はないでしょうか?
また、作成者の齟齬が起きてなかった場合(一括で作成者を変更できる場合?)は、その一括変更後に元のテーマに戻すという流れでいいのでしょうか?●現状、functions.phpをコメントアウトすれば体感的には問題が解決してるように思います。
ただ、見えないところで(DB)の解決にまでは到ってないのでしょうか?
また、個人的には今後何かしら不備が出てきた際、購入先からのサポートが受けやすいように、出来るだけ素のままにしておきたいとも思っているのですが、どういった形がベターと推測されますでしょうか?ご使用のテーマは TCD のものですね…?
販売元からの回答の中にあった'/co-authors-plus/co-authors-plus.php'
からいくつかの情報にたどりつきました。まず…
Co-Authors Plus というプラグインが公式テーマディレクトリにありました。試しにインストールしてみたところ、投稿一覧画面で「作成者」カラムが消え、クイック編集や一括編集からも消えました。投稿編集画面には、ユーザーを検索できるメタボックスが現れていました。pokota88 さんのこれまでの説明とほぼ一致しているので、おそらくこれがテーマに組み込まれているものと思います。(ただし、テーマに組み込まれているものが、同じバージョンかどうかはわかりません。)Co-Authors Plusプラグインでいろいろ試してみた結果を踏まえての私のおススメ策は、「複数投稿者機能は無効にしたまま使う (該当箇所をコメントアウトしておく)」です。
functions.phpの該当箇所をコメントアウトして無効にすると、作成者が本来のユーザーになる、とのことなので、WordPressの標準機能における記事と作成者の関連付けは正しいわけです。なので、DB も今のままで問題ありません。
Co-Authors Plusプラグインを有効にして記事を新規作成し、DBの中をあちこち見てみた結果、このプラグインは、
- “author” というカスタムタクソノミーを登録し、
- 各ユーザーを authorタクソノミーのタームとして登録し、
- 記事にユーザータームを割り当てる
というしくみで記事に複数の投稿者を割り当てられるようにしています。
Co-Authors Plus を有効にしているときに「作成者」欄の代わりに現れる「投稿者」欄には、これらのタームの情報をもとにして取得したユーザー名が表示されます。
現在の pokota88さんの DBでは、削除したユーザーのタームが記事に割り当てられたまま残っている状態だと思われます。割り当てられたタームIDに該当するユーザーがすでに削除されているため、ユーザー名が表示されないのです。(これは、ユーザーを削除したあと、記事に割り当てられているauthorタクソノミーのタームを、DB上で直接、削除済みのユーザーのものに書き換えてみたりして確認しました)
Co-Authors Plus を無効にすると、authorsタクソノミーは意味を持たなくなり、「投稿者」欄も表示されなくなり、WordPress標準の「作成者」欄が復活して、そこには本来の作成者情報が表示されます。authorsタクソノミーのタームが割り当てられたままになっていても、Co-Authors Plus が無効になっている限りは使われることはなく、標準機能に対して悪影響はないと思います。
Co-Authors Plus プラグイン 3.2.2 で試した限りでは、このプラグインを停止すると、クイック編集や一括編集にも「作成者」が復活するので、pokota88さんの環境でコメントアウトしてもそれらが復活しない理由はよくわかりませんが、テーマに組み込む段階で何かカスタマイズされているのかもしれません。
このトピックの元々のテーマは「記事とユーザー名を結びつける方法」だったわけですが、それは現在も正しいことがわかりました。Co-Authors Plus を有効にしない限りは、DBはこのままで問題ありません。複数投稿者機能を使わないのであれば、コメントアウトしたままにしておけばいいと思います。購入先からのサポートが得られなくなるような変更ではないと思います。
kazuykさま、およそ自分には不可能な検証から詳細なご回答まで、誠にありがとうございます。
テーマもまさしくTCDさまのものになります。私の知識や経験が足りないため、頂いた説明の100%までは理解できていないのですが、「複数投稿者機能は無効にしたまま使う (該当箇所をコメントアウトしておく)」ことが最良だと思えました。
最後に製作者サイドであるTCDさまに今回の流れを再度聞いてみて、そのご回答の報告をもって問題の解決とさせて頂きたいと思います。
何点か書き忘れたので追記します。
“co-authors-plus.php” で検索したら、下記の記事も発見しました。
http://tcd-manual.net/?p=3604テーマのカスタマイズ情報として販売元が提供しているので、その情報を利用したからといってサポートサービスを受けられなくなることはないでしょう、と思いました。
なお、Co-Authors Plusプラグインを試用していて、いくつか挙動不審な点がありました。何をどうするとそうなる、という再現手順を確認したわけではありませんが、投稿の編集画面で投稿者の変更や追加ができなくなったり、クイック編集に[投稿者]割り当てUIが表示されたり・・・ いまひとつ動作が不安定な印象を受けたので、自分としては使いたくないと思いました。
そのため、複数投稿者機能を必要としないなら無効にしておく方がよいのでは、と思って、直前の返信にそのように書きました。
kazuykさま、追記ありがとうございます。
納得できた点、言われないと特別気にしてなかった点など参考になります。
また迷った際は、お力を貸して頂けると幸いでございます。kazuykさま、Toro_Unitさま、今回は誠にありがとうございました。
★★頂いた回答ここから★★
DBを触るには、知識が必要となりましため
フォーラムでご回答のありましたように
「複数投稿者機能は無効にしたまま使う (該当箇所をコメントアウトしておく)」です。
が一番よろしいかと思います。
★★ここまで★★文面からは、知識があるならDBを触った方がいいのか?結局DBに問題が残っているのかいないのか?少々曖昧な回答なので、一応再確認させて頂こうかと思っておりますが…。
しかしながら、kazuykさまの検証や、問題ないという言葉から心配がないようにも思っておりますので、今回はこれで解決とさせて頂きます。
誠にありがとうございました。
- トピック「記事とユーザー名を結びつける方法」には新たに返信することはできません。