Wsparcie » Używanie i konfiguracja WordPressa » Brak możliwości edycji posta / strony

  • Rozwiązany abel1

    (@abel1)


    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

Viewing 15 replies - 1 through 15 (of 33 total)
  • 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 problem

    Z 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+K

    No 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 jest

    OK, 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 37

    Notice: 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

Viewing 15 replies - 1 through 15 (of 33 total)
  • The topic ‘Brak możliwości edycji posta / strony’ is closed to new replies.