Wsparcie » Używanie i konfiguracja WordPressa » Brak możliwości edycji posta / strony
Brak możliwości edycji posta / strony
-
Tak jak w temacie
Zainstalowałem Platinum SEO Pack i straciłem możliwość edycji
Po kliknięciu edytuj mam tylko białą ramkę
Nie ma możliwości przełączenia się pomiędzy trybem wizualnym a tekstowym
Owszem mogę zaznaczyć to co jest w ramce i po zaznaczeniu widzę tryb tekstowy
Jak to naprawić
Odinstalowałem wtyczkę niby wszystko wróciło do normy , jednak strony które edytowałem przed odinstalowaniem pozostały uszkodzone
-
No to masz nauczkę przed instalowaniem byle jakich wtyczek 😉
W jaki sposób zostały uszkodzone te strony?
W jaki sposób ? Hmm
Po wejściu w edycje nic nie widać biała strona
Brak możliwości przełączenia sięz trybu tekstowego na wizualny
Mogę jedynie zaznaczyć .Po zaznaczeniu widzę tryb tekstowy
A czy to byle jaka wtyczka ? Platinum SEO Pack.
Na innej instalacji mam ją zainstalowaną i podobne rzeczy się nie zdarzająA możesz podesłać screena? Przyznam, że nie bardzo z Twojego opisu rozumiem, co tam się dzieje, bo niby jest biała strona, a jednak potem piszesz o przełączaniu między edytorami (czyli widać przełączniki, czyli strona nie jest biała…)?
Jeśli chodzi o Platinum SEO Pack i jej bylejakość. Cytat ze strony wtyczki:
„This plugin hasn’t been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.” (ostatni update w 2010 roku).Compatible up to: 3.0.5 (Obecnie mamy 3.5.1).
Już tylko to raczej nic dobrego nie wróży 😉
No tak co do wtyczki to może masz racje 🙂
A tu fotki
Edycja strony
http://imageshack.us/photo/my-images/560/forumwordpress.png/
Zaznaczenie tego co tam jest
http://imageshack.us/photo/my-images/109/forumwordpress1.png/
Tak jak pisze można to zaznaczyćPomoże ktoś w naprawieniu tego
Problemem była wtyczka jednak po wyłączeniu jej nadal jest problemZ tego, co widać na screenach, to wygląda jakby Ci się wysypały JSy.
Jesteś w stanie pokazać jeszcze screena z consoli z błędami JS?
jak bym wiedział jak to mógł bym spróbować
Podpowiedz gdzie to jest , gdzie tego szukać
Jeżeli można to zrobić bez dostępu do panela administracyjnego to będę mógł to zrobić
Na chwile obecną nie mogę się nawet zalogowaćZależy jakiej przeglądarki używasz.
Jeśli Chrome, to wystarczy wcisnąć F12 i potem wybrać zakładkę „Console”.
W Firefoxie bodajże Ctrl+Shift+KNo więc coś mam
Port error: Could not establish connection. Receiving end does not exist. miscellaneous_bindings:236 chromeHidden.Port.dispatchOnDisconnect (function(require, requireNative, exports) {// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // This contains unprivileged javascript APIs for extensions and apps. It // can be loaded by any extension-related context, such as content scripts or // background pages. See user_script_slave.cc for script that is loaded by // content scripts only. require('json_schema'); require('event_bindings'); var lastError = require('lastError'); var miscNatives = requireNative('miscellaneous_bindings'); var CloseChannel = miscNatives.CloseChannel; var PortAddRef = miscNatives.PortAddRef; var PortRelease = miscNatives.PortRelease; var PostMessage = miscNatives.PostMessage; var BindToGC = miscNatives.BindToGC; var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); var processNatives = requireNative('process'); var manifestVersion = processNatives.GetManifestVersion(); var extensionId = processNatives.GetExtensionId(); // The reserved channel name for the sendRequest/sendMessage APIs. // Note: sendRequest is deprecated. chromeHidden.kRequestChannel = "chrome.extension.sendRequest"; chromeHidden.kMessageChannel = "chrome.runtime.sendMessage"; chromeHidden.kNativeMessageChannel = "chrome.runtime.sendNativeMessage"; // Map of port IDs to port object. var ports = {}; // Map of port IDs to chromeHidden.onUnload listeners. Keep track of these // to free the onUnload listeners when ports are closed. var portReleasers = {}; // Change even to odd and vice versa, to get the other side of a given // channel. function getOppositePortId(portId) { return portId ^ 1; } // Port object. Represents a connection to another script context through // which messages can be passed. function PortImpl(portId, opt_name) { this.portId_ = portId; this.name = opt_name; this.onDisconnect = new chrome.Event(); this.onMessage = new chrome.Event(); } // Sends a message asynchronously to the context on the other end of this // port. PortImpl.prototype.postMessage = function(msg) { // JSON.stringify doesn't support a root object which is undefined. if (msg === undefined) msg = null; PostMessage(this.portId_, chromeHidden.JSON.stringify(msg)); }; // Disconnects the port from the other end. PortImpl.prototype.disconnect = function() { CloseChannel(this.portId_, true); this.destroy_(); }; PortImpl.prototype.destroy_ = function() { var portId = this.portId_; this.onDisconnect.destroy_(); this.onMessage.destroy_(); PortRelease(portId); chromeHidden.onUnload.removeListener(portReleasers[portId]); delete ports[portId]; delete portReleasers[portId]; }; chromeHidden.Port = {}; // Returns true if the specified port id is in this context. This is used by // the C++ to avoid creating the javascript message for all the contexts that // don't care about a particular message. chromeHidden.Port.hasPort = function(portId) { return portId in ports; }; // Hidden port creation function. We don't want to expose an API that lets // people add arbitrary port IDs to the port list. chromeHidden.Port.createPort = function(portId, opt_name) { if (ports[portId]) { throw new Error("Port '" + portId + "' already exists."); } var port = new PortImpl(portId, opt_name); ports[portId] = port; portReleasers[portId] = PortRelease.bind(this, portId); chromeHidden.onUnload.addListener(portReleasers[portId]); PortAddRef(portId); return port; }; // Helper function for dispatchOnRequest. function handleSendRequestError(isSendMessage, responseCallbackPreserved, sourceExtensionId, targetExtensionId) { var errorMsg; var eventName = (isSendMessage ? "chrome.runtime.onMessage" : "chrome.extension.onRequest"); if (isSendMessage && !responseCallbackPreserved) { errorMsg = "The " + eventName + " listener must return true if you want to" + " send a response after the listener returns "; } else { errorMsg = "Cannot send a response more than once per " + eventName + " listener per document"; } errorMsg += " (message was sent by extension " + sourceExtensionId; if (sourceExtensionId != targetExtensionId) errorMsg += " for extension " + targetExtensionId; errorMsg += ")."; lastError.set(errorMsg); console.error("Could not send response: " + errorMsg); } // Helper function for dispatchOnConnect function dispatchOnRequest(portId, channelName, sender, sourceExtensionId, targetExtensionId, isExternal) { var isSendMessage = channelName == chromeHidden.kMessageChannel; var requestEvent = (isSendMessage ? (isExternal ? chrome.runtime.onMessageExternal : chrome.runtime.onMessage) : (isExternal ? chrome.extension.onRequestExternal : chrome.extension.onRequest)); if (requestEvent.hasListeners()) { var port = chromeHidden.Port.createPort(portId, channelName); port.onMessage.addListener(function(request) { var responseCallbackPreserved = false; var responseCallback = function(response) { if (port) { port.postMessage(response); port.destroy_(); port = null; } else { // We nulled out port when sending the response, and now the page // is trying to send another response for the same request. handleSendRequestError(isSendMessage, responseCallbackPreserved, sourceExtensionId, targetExtensionId); } }; // In case the extension never invokes the responseCallback, and also // doesn't keep a reference to it, we need to clean up the port. Do // so by attaching to the garbage collection of the responseCallback // using some native hackery. BindToGC(responseCallback, function() { if (port) { port.destroy_(); port = null; } }); if (!isSendMessage) { requestEvent.dispatch(request, sender, responseCallback); } else { var rv = requestEvent.dispatch(request, sender, responseCallback); responseCallbackPreserved = rv && rv.results && rv.results.indexOf(true) > -1; if (!responseCallbackPreserved && port) { // If they didn't access the response callback, they're not // going to send a response, so clean up the port immediately. port.destroy_(); port = null; } } }); return true; } return false; } // Called by native code when a channel has been opened to this context. chromeHidden.Port.dispatchOnConnect = function(portId, channelName, tab, sourceExtensionId, targetExtensionId) { // Only create a new Port if someone is actually listening for a connection. // In addition to being an optimization, this also fixes a bug where if 2 // channels were opened to and from the same process, closing one would // close both. if (targetExtensionId != extensionId) return false; // not for us if (ports[getOppositePortId(portId)]) return false; // this channel was opened by us, so ignore it // Determine whether this is coming from another extension, so we can use // the right event. var isExternal = sourceExtensionId != extensionId; if (tab) tab = chromeHidden.JSON.parse(tab); var sender = {tab: tab, id: sourceExtensionId}; // Special case for sendRequest/onRequest and sendMessage/onMessage. if (channelName == chromeHidden.kRequestChannel || channelName == chromeHidden.kMessageChannel) { return dispatchOnRequest(portId, channelName, sender, sourceExtensionId, targetExtensionId, isExternal); } var connectEvent = (isExternal ? chrome.runtime.onConnectExternal : chrome.runtime.onConnect); if (connectEvent.hasListeners()) { var port = chromeHidden.Port.createPort(portId, channelName); port.sender = sender; if (manifestVersion < 2) port.tab = port.sender.tab; connectEvent.dispatch(port); return true; } return false; }; // Called by native code when a channel has been closed. chromeHidden.Port.dispatchOnDisconnect = function( portId, connectionInvalid) { var port = ports[portId]; if (port) { // Update the renderer's port bookkeeping, without notifying the browser. CloseChannel(portId, false); if (connectionInvalid) { var errorMsg = "Could not establish connection. Receiving end does not exist."; lastError.set(errorMsg); console.error("Port error: " + errorMsg); Port error: Could not establish connection. Receiving end does not exist. } try { port.onDisconnect.dispatch(port); } finally { port.destroy_(); lastError.clear(); } } }; // Called by native code when a message has been sent to the given port. chromeHidden.Port.dispatchOnMessage = function(msg, portId) { var port = ports[portId]; if (port) { if (msg) { msg = chromeHidden.JSON.parse(msg); } port.onMessage.dispatch(msg, port); } }; // Shared implementation used by tabs.sendMessage and runtime.sendMessage. chromeHidden.Port.sendMessageImpl = function(port, request, responseCallback) { if (port.name != chromeHidden.kNativeMessageChannel) port.postMessage(request); if (port.name == chromeHidden.kMessageChannel && !responseCallback) { // TODO(mpcomplete): Do this for the old sendRequest API too, after // verifying it doesn't break anything. // Go ahead and disconnect immediately if the sender is not expecting // a response. port.disconnect(); return; } // Ensure the callback exists for the older sendRequest API. if (!responseCallback) responseCallback = function() {}; port.onDisconnect.addListener(function() { // For onDisconnects, we only notify the callback if there was an error try { if (chrome.runtime.lastError) responseCallback(); } finally { port = null; } }); port.onMessage.addListener(function(response) { try { responseCallback(response); } finally { port.disconnect(); port = null; } }); }; function sendMessageUpdateArguments(functionName) { // Align missing (optional) function arguments with the arguments that // schema validation is expecting, e.g. // extension.sendRequest(req) -> extension.sendRequest(null, req) // extension.sendRequest(req, cb) -> extension.sendRequest(null, req, cb) var args = Array.prototype.splice.call(arguments, 1); // skip functionName var lastArg = args.length - 1; // responseCallback (last argument) is optional. var responseCallback = null; if (typeof(args[lastArg]) == 'function') responseCallback = args[lastArg--]; // request (second argument) is required. var request = args[lastArg--]; // targetId (first argument, extensionId in the manfiest) is optional. var targetId = null; if (lastArg >= 0) targetId = args[lastArg--]; if (lastArg != -1) throw new Error('Invalid arguments to ' + functionName + '.'); return [targetId, request, responseCallback]; } exports.sendMessageUpdateArguments = sendMessageUpdateArguments; })
Mam nadzieje że to jest to
Dobra, jakieś magie trochę.
To może zróbmy inaczej, bo analizowanie tego trochę zajmie. Czy jesteś w stanie zalogować się do bazy danych (chociażby przy użyciu PHPMyAdmin) i sprawdzić, co ta super-wtyczka powstawiała do tych wpisów takiego, że je zepsuła, a potem to wywalić?
Ta czynność może być chyba konieczna przy naprawianiu tego problemu…
Tak do bazy danych mogę się zalogować bez problemu
Jednak ja zainstalowałem kolejny raz wordpress
To znaczy nie instalowałem go całkowicie tylko na FTP wrzuciłem na nowo wszystkie pliki
Baza została nie ruszona
Po wrzuceniu nowej kopi plików wordpress strona odpaliła jak by nigdy nic
Dopiero próba zainstalowania jakiejkolwiek wtyczki powoduje powyższe problemy
I nie ma znaczenia jaka wtyczka
Obecnie mam włączoną tylko wtyczkę „Google XML Sitemaps”
Próba włączenia jakiejkolwiek od razu strona się sypie
I tu nie chodzi o jakiś jeden wpis
Po włączeniu jakiejkolwiek wtyczki sypie się całkowicie część administracyjna ( brak możliwości wejścia w kokpit)OK, no to objaw trochę inny chyba niż na początku?
Co możesz zrobić…?
Włącz w wp-config tryb WP_DEBUG – być może wtedy pojawią się jakieś błędy, bo może np. być tak, że Twój hosting ma za mały limit pamięci i po włączeniu wtyczki, zaczyna jej brakować.
Jeśli WP_DEBUG nic nie pokaże, to spróbowałbym zbackupować całą bazę, zainstalować tego WordPressa zupełnie od nowa (razem z bazą) i zobaczyć, czy wtedy działa. Jeśli nie, to winny jest pewnie hosting. Jeśli tak, to wtedy zaimportowałbym z backupu część tabel (wpisy i taksonomie powinny wystarczyć) i z głowy.
Podejrzenie o problem z hostingiem to i mnie wydaje się być prawdopodobne
Ale z drugiej strony
Mam jeszcze jedną domenę na której mam inne instalacje WordPress co więcej na tej samen domenie jest forum MyBB i tam takie problemy nie występują
Myślałem na początku że to może wina WP 3.5.1
Zainstalowałem starszego ale jest to samo
No nic spróbuje włączyć ten debug i dam znać co tam jestOK, czekam na informacje zatem.
No więc wypluło cośtakiego
„Notice: Use of undefined constant TEMPLATEURL – assumed 'TEMPLATEURL’ in /home/www/1o0o.pl/subdomains/www/wp-content/themes/alibi3col/functions.php on line 36
Notice: Use of undefined constant ALI_LINKCOLOUR – assumed 'ALI_LINKCOLOUR’ in /home/www/1o0o.pl/subdomains/www/wp-content/themes/alibi3col/functions.php on line 37Notice: Use of undefined constant ALI_HOVERCOLOUR – assumed 'ALI_HOVERCOLOUR’ in /home/www/1o0o.pl/subdomains/www/wp-content/themes/alibi3col/functions.php on line 38 „
Co może być nie tak w tych liniach
define (TEMPLATEURL, get_bloginfo(’template_directory’));
define(ALI_LINKCOLOUR, '#3C439F’);
define(ALI_HOVERCOLOUR, '#731113′);Co prawda zmieniłem trochę tą skórkę
Edytowałem style.css
Ale to nie powinno mieć znaczenia
- Temat ‘Brak możliwości edycji posta / strony’ jest zamknięty na nowe odpowiedzi.